1. 程式人生 > >Maven為web專案同時打jar和war包,deploy時只上傳jar包的配置

Maven為web專案同時打jar和war包,deploy時只上傳jar包的配置

<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.class8</groupId>
  <artifactId>edu_course</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>edu_course Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <distributionManagement>
  	<repository>
  		<id>nexus-releases-repository</id>
  		<name>Nexus Resleases Repository</name>
  		<url>http://xxx.xxx.xxx.xxx:8081/nexus/content/repositories/releases</url>
  	</repository>
  	<snapshotRepository>
  		<id>nexus-snapshots-repository</id>
  		<name>Nexus Snapshot Repository</name>
  		<url>http://xxx.xxx.xxx.xxx:8081/nexus/content/repositories/snapshots</url></span>
  	</snapshotRepository>
  </distributionManagement>
  <build>
    <finalName>edu_course</finalName>
    <plugins>
    	<plugin>
    		<artifactId>maven-compiler-plugin</artifactId>
    		<configuration>
    			<source>1.7</source>
    			<target>1.7</target>
    		</configuration>
    	</plugin>
    	<plugin>
    		<artifactId>maven-war-plugin</artifactId>
    		<configuration>
    			<archiveClasses>true</archiveClasses>
    		</configuration>
    	</plugin>
    	<plugin>
    		<artifactId>maven-jar-plugin</artifactId>
    		<executions>
    			<execution>
    				<id>interface</id>
    				<phase>package</phase>
    				<goals>
    					<goal>jar</goal>
    				</goals>
    				<configuration>
		    			<!-- 新增classifier修飾以區別於war,保證上傳成功 -->
		    			<classifier>interface</classifier>
		    			<includes>
		    				<include>**/com/class8/service/</include>
		    				<include>**/com/class8/entity/</include>
		    			</includes>
		    			<excludes>
		    				<exclude>**/com/class8/service/impl/</exclude>
		    			</excludes>
		    		</configuration>
    			</execution>
    		</executions>
    	</plugin>
    	<!-- deploy時只上傳jar包到遠端倉庫的配置 -->
    	<plugin>
    		<artifactId>maven-deploy-plugin</artifactId>
    		<executions>
				 <execution>
				 	<id>default-deploy</id>
		            <phase>deploy</phase>
		            <goals>
		            	<goal>deploy</goal>
		            </goals>
		            <!-- skip預設deploy外掛的執行 -->
				 	<configuration>
				 		<skip>true</skip>
				 	</configuration>
				 </execution>
				 <execution>
				 	<id>deploy-file</id>
				 	<phase>deploy</phase>
				 	<goals>
				 		<goal>deploy-file</goal>
				 	</goals>
				 	<configuration>
				 		<!-- 開發階段上傳到snapshot倉庫,上線階段上傳到release倉庫 -->
				 		<repositoryId>${project.distributionManagement.snapshotRepository.id}</repositoryId>
				 		<url>${project.distributionManagement.snapshotRepository.url}</url>
				 		<file>${project.build.directory}/${project.artifactId}-interface.jar</file>
 						<groupId>${project.groupId}</groupId>
				 		<artifactId>${project.artifactId}</artifactId>
						<version>${project.version}</version>
				 		<classifier>interface</classifier>
				 	</configuration>
				 </execution>
    		</executions>
    	</plugin>
    </plugins>
  </build>
</project>