一个scala工程的父子工程pom文件,仅供scala IDEA使用

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
  <modelVersion>4.0.0</modelVersion>
  
  <groupId>com.pat</groupId>
  <artifactId>com-pat-parent</artifactId>
  
  <version>0.0.1-SNAPSHOT</version>
  
  <name>${project.artifactId}</name>
  <description>My scala app</description>
  <inceptionYear>2016</inceptionYear>
  
  <packaging>pom</packaging>
  
  <licenses>
    <license>
      <name>My License</name>
      <url>http://....</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

	<spark.version>1.6.0</spark.version>
	<scala.binary.version>2.10</scala.binary.version>
    <scala.tools.version>2.10</scala.tools.version>
    <scala.version>2.10.6</scala.version>
   	<hadoop-two.version>2.6.0</hadoop-two.version>
	<hbase-version>1.0.0</hbase-version>
  </properties>
  <dependencyManagement>
  
  	<dependencies>
 
 		<!-- 引入和hadoop集群相同版本的 -->
		<dependency>
			<groupId>org.apache.hadoop</groupId>
			<artifactId>hadoop-client</artifactId>
			<version>${hadoop-two.version}</version>
			<exclusions>
				<exclusion>
					<groupId>javax.servlet</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-streaming_${scala.binary.version}</artifactId>
			<version>${spark.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-streaming-flume_${scala.binary.version}</artifactId>
			<version>${spark.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-streaming-kafka_${scala.binary.version}</artifactId>
			<version>${spark.version}</version>
			<scope>provided</scope>
		</dependency>
		 <dependency>
				<groupId>org.apache.spark</groupId>
				<artifactId>spark-core_${scala.binary.version}</artifactId>
				<version>${spark.version}</version>
				<scope>provided</scope>
				<exclusions>
					<exclusion>
						<!-- make sure wrong scala version is not pulled in -->
						<groupId>org.scala-lang</groupId>
						<artifactId>scala-library</artifactId>
					</exclusion>
					<exclusion>
						<!-- make sure wrong scala version is not pulled in -->
						<groupId>org.scala-lang</groupId>
						<artifactId>scalap</artifactId>
					</exclusion>
				 
					<exclusion> 
					<groupId>org.apache.hadoop</groupId>
					<artifactId>hadoop-client</artifactId> 
					</exclusion> 
	 
				</exclusions>
			</dependency>
		 <dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-sql_${scala.binary.version}</artifactId>
			<version>${spark.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.spark</groupId>
			<artifactId>spark-hive_${scala.binary.version}</artifactId>
			<version>${spark.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.hbase</groupId>
			<artifactId>hbase-client</artifactId>
			<version>${hbase-version}</version>
			<exclusions>
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.thrift</groupId>
					<artifactId>thrift</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jruby</groupId>
					<artifactId>jruby-complete</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mortbay.jetty</groupId>
					<artifactId>jsp-2.1</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mortbay.jetty</groupId>
					<artifactId>jsp-api-2.1</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mortbay.jetty</groupId>
					<artifactId>servlet-api-2.5</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jersey</groupId>
					<artifactId>jersey-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jersey</groupId>
					<artifactId>jersey-json</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jersey</groupId>
					<artifactId>jersey-server</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mortbay.jetty</groupId>
					<artifactId>jetty</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mortbay.jetty</groupId>
					<artifactId>jetty-util</artifactId>
				</exclusion>
				<exclusion>
					<groupId>tomcat</groupId>
					<artifactId>jasper-runtime</artifactId>
				</exclusion>
				<exclusion>
					<groupId>tomcat</groupId>
					<artifactId>jasper-compiler</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jruby</groupId>
					<artifactId>jruby-complete</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jboss.netty</groupId>
					<artifactId>netty</artifactId>
				</exclusion>
				<exclusion>
					<groupId>io.netty</groupId>
					<artifactId>netty</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
 
		<dependency>
			<groupId>org.apache.hbase</groupId>
			<artifactId>hbase-common</artifactId>
			<version>${hbase-version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.hbase</groupId>
			<artifactId>hbase-server</artifactId>
			<version>${hbase-version}</version>
		</dependency>
  	</dependencies>
  </dependencyManagement>
  
   <dependencies>
 		<dependency>
		    <groupId>log4j</groupId>
		    <artifactId>log4j</artifactId>
		    <version>1.2.17</version>
		</dependency>
		<dependency>
			<groupId>org.scalatest</groupId>
			<artifactId>scalatest_${scala.tools.version}</artifactId>
			<version>2.0.M6-SNAP8</version>
			<scope>test</scope>
		</dependency>
 		<dependency>
			<groupId>org.specs2</groupId>
			<artifactId>specs2-core_${scala.tools.version}</artifactId>
			<version>3.8.6</version>
			<scope>test</scope>
		</dependency>
	    <!-- Test -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
     		 <version>4.11</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>jdk.tools</groupId>
			<artifactId>jdk.tools</artifactId>
			<version>1.8</version>
			<scope>system</scope>
			<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.26</version>
		</dependency>
		
		<dependency>
			<groupId>org.scala-lang</groupId>
			<artifactId>scala-library</artifactId>
			<version>${scala.version}</version>
			<scope>provided</scope>
		</dependency>
		
		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20140107</version>
		</dependency>
		
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.8.1</version>
		</dependency>
	</dependencies>

	<build>
	<pluginManagement>
		<plugins>
			<plugin>
				<groupId>net.alchim31.maven</groupId>
				<artifactId>scala-maven-plugin</artifactId>
				<version>3.2.0</version>
				<configuration>
					<charset>${project.build.sourceEncoding}</charset>
					<scalaVersion>${scala.version}</scalaVersion>
					<args>
						<arg>-feature</arg>
					</args>
				</configuration>
				<executions>
					<execution>
						<id>scala-compile-first</id>
						<phase>process-resources</phase>
						<goals>
							<goal>add-source</goal>
							<goal>compile</goal>
						</goals>
					</execution>
					<execution>
						<id>scala-test-compile</id>
						<phase>process-test-resources</phase>
						<goals>
							<goal>testCompile</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!-- compiler插件, 设定JDK版本 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.5.1</version>
				<configuration>
					<encoding>${project.build.sourceEncoding}</encoding>
					<source>${maven.compiler.source}</source>
					<target>${maven.compiler.target}</target>
					<skipTests>true</skipTests>
					<skip>true</skip>
					<showWarnings>true</showWarnings>
				</configuration>
			</plugin>

			<!-- 讲依赖jar都打进来。 -->
            <!-- 此处为此插件的配置文件,此位置为项目根目录下-->  
			<plugin>

   			   <groupId>org.apache.maven.plugins</groupId>	
   			   <artifactId>maven-assembly-plugin</artifactId>
	           <version>3.0.0</version>
                 <configuration>    
                   <!--  <finalName>${project.artifactId}</finalName>    
                    <attach>true</attach>     -->
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
					<archive>
						<manifest>
							<mainClass>org.apache.spark.sql.datasources.hbase.Test</mainClass>
						</manifest>
					</archive>
				</configuration>
				
				<executions>
					<execution>
						<id>make-assembly</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.scalatest</groupId>
				<artifactId>scalatest-maven-plugin</artifactId>
				<version>1.0</version>
				<configuration>
					<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
					<junitxml>.</junitxml>
					<filereports>WDF TestSuite.txt</filereports>
					<parallel>false</parallel>
				</configuration>
				<executions>
					<execution>
						<id>test</id>
						<phase>test</phase>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<argLine>-XX:MaxPermSize=2048m </argLine>
							<skipTests>true</skipTests>
						</configuration>
					</execution>
					<execution>
						<id>integration-test</id>
						<phase>integration-test</phase>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<tagsToExclude>Integration-Test</tagsToExclude>
							<argLine>
								-Xmx2048m -XX:MaxPermSize=2048m -XX:ReservedCodeCacheSize=2048m
							</argLine>
							<parallel>false</parallel>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- clover fails due to scala/java cross compile. This guarantees that 
				the scala is compiled before the java that will be evaluated by code coverage 
				(scala will not be). https://confluence.atlassian.com/display/CLOVERKB/Java-+Scala+cross-compilation+error+-+cannot+find+symbol -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>1.9.1</version>
				<executions>
					<execution>
						<id>add-source</id>
						<phase>validate</phase>
						<goals>
							<goal>add-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/main/scala</source>
							</sources>
						</configuration>
					</execution>
					<execution>
						<id>add-test-source</id>
						<phase>validate</phase>
						<goals>
							<goal>add-test-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/test/scala</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</pluginManagement>
</build>
 
  <modules>
  	<module>com-pat-common</module>
  	<module>com-pat-test</module>
  </modules>
</project>

上面是父工程的pom

下面是子工程的pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<artifactId>com-pat-parent</artifactId>
		<groupId>com.pat</groupId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<groupId>com.pat.test</groupId>
	<artifactId>com-pat-test</artifactId>
	<version>1.0-SNAPSHOT</version>
	<name>${project.artifactId}</name>
	<description>test scala app</description>
	<inceptionYear>2016</inceptionYear>
 

	<properties>

	</properties>

	<dependencies>
	
	</dependencies>

	<build>
		<sourceDirectory>src/main/scala</sourceDirectory>
		<testSourceDirectory>src/test/scala</testSourceDirectory>
		<plugins>
			<plugin>
				<groupId>net.alchim31.maven</groupId>
				<artifactId>scala-maven-plugin</artifactId>
				<configuration>
					<charset>${project.build.sourceEncoding}</charset>
					<scalaVersion>${scala.version}</scalaVersion>
					<args>
						<arg>-feature</arg>
					</args>
				</configuration>
				<executions>
					<execution>
						<id>scala-compile-first</id>
						<phase>process-resources</phase>
						<goals>
							<goal>add-source</goal>
							<goal>compile</goal>
						</goals>
					</execution>
					<execution>
						<id>scala-test-compile</id>
						<phase>process-test-resources</phase>
						<goals>
							<goal>testCompile</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!-- compiler插件, 设定JDK版本 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<encoding>${project.build.sourceEncoding}</encoding>
					<source>${maven.compiler.source}</source>
					<target>${maven.compiler.target}</target>
					<skipTests>true</skipTests>
					<showWarnings>true</showWarnings>
				</configuration>
			</plugin>

			<!-- 讲依赖jar都打进来。 -->
			<!-- 此处为此插件的配置文件,此位置为项目根目录下 -->
			<plugin>

				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<!-- <finalName>${project.artifactId}</finalName> <attach>true</attach> -->
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
					<archive>
						<manifest>
							<mainClass>org.apache.spark.sql.datasources.hbase.Test</mainClass>
						</manifest>
					</archive>
				</configuration>

				<executions>
					<execution>
						<id>make-assembly</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.scalatest</groupId>
				<artifactId>scalatest-maven-plugin</artifactId>
				<configuration>
					<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
					<junitxml>.</junitxml>
					<filereports>WDF TestSuite.txt</filereports>
					<parallel>false</parallel>
				</configuration>
				<executions>
					<execution>
						<id>test</id>
						<phase>test</phase>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<argLine>-XX:MaxPermSize=2048m </argLine>
							<skipTests>true</skipTests>
						</configuration>
					</execution>
					<execution>
						<id>integration-test</id>
						<phase>integration-test</phase>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<tagsToExclude>Integration-Test</tagsToExclude>
							<argLine>
								-Xmx2048m -XX:MaxPermSize=2048m
								-XX:ReservedCodeCacheSize=2048m
							</argLine>
							<parallel>false</parallel>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- clover fails due to scala/java cross compile. This guarantees that 
				the scala is compiled before the java that will be evaluated by code coverage 
				(scala will not be). https://confluence.atlassian.com/display/CLOVERKB/Java-+Scala+cross-compilation+error+-+cannot+find+symbol -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>add-source</id>
						<phase>validate</phase>
						<goals>
							<goal>add-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/main/scala</source>
							</sources>
						</configuration>
					</execution>
					<execution>
						<id>add-test-source</id>
						<phase>validate</phase>
						<goals>
							<goal>add-test-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/test/scala</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

猜你喜欢

转载自blog.csdn.net/mtj66/article/details/80619853
今日推荐