jar包三种打包方式,maven 嘛味儿

<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.solway</groupId>
	<artifactId>packateTest</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<description>打包测试by ynp</description>
	<dependencies>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>

		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
	</dependencies>
	<build>
		<sourceDirectory>src/main/java</sourceDirectory>
		<plugins>
		<!-- ******* 方式一 : 运行方式 mvn clean package ******* -->
		<!-- 
	 		*  生成一个jar包,不包含依赖包
	 	 -->
		 	 
		<!--  
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.4</version>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<mainClass>com.xx.Test</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>
		 -->
		 	<!-- ******* 方式二 : 运行方式 mvn assembly:assembly ******* -->
		 	<!-- 
		 		* appendAssemblyId 为false 生成两个jar包,一个只打包自身代码,一个把依赖包打入
		 		* appendAssemblyId 为true 生成一个jar包,包含依赖包
		 	 -->
		 	
		 	<!-- 
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<appendAssemblyId>true</appendAssemblyId>
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
					<archive>
						<manifest>
							<mainClass>com.xx.Test</mainClass>
						</manifest>
					</archive>
				</configuration>
				<executions>
					<execution>
						<id>make-assembly</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			
			 -->
			 
			<!-- ******* 方式三 : 运行方式 mvn clean package ******* -->	
			<!-- 
	 			*  生成两个jar包,一个只打包自身代码,一个把依赖包打入
	 	 	-->
	 	 
	        <plugin>  
	            <groupId>org.apache.maven.plugins</groupId>  
	            <artifactId>maven-shade-plugin</artifactId>  
	            <version>2.4</version>  
	            <executions>  
	                <execution>  
	                    <phase>package</phase>  
	                    <goals>  
	                        <goal>shade</goal>  
	                    </goals>  
	                    <configuration>  
	                        <transformers>  
	                            <transformer  
	                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
	                                <mainClass>com.xx.Test</mainClass>  
	                            </transformer>  
	                        </transformers>  
	                        <shadedArtifactAttached>true</shadedArtifactAttached>  
	                        <shadedClassifierName>executable</shadedClassifierName>  
	                    </configuration>  
	                </execution>  
	            </executions>  
	        </plugin>  
		</plugins>
	</build>

</project>

猜你喜欢

转载自ynp.iteye.com/blog/2277026