html tool

2017年10月9日星期一

使用maven-assembly-plugin插件打包

在pom.xml中配置:
[html] view plain copy
  1. <build>  
  2.     <plugins>  
  3.   
  4.         <plugin>  
  5.             <groupId>org.apache.maven.plugins</groupId>  
  6.             <artifactId>maven-assembly-plugin</artifactId>  
  7.             <version>2.5.5</version>  
  8.             <configuration>  
  9.                 <archive>  
  10.                     <manifest>  
  11.                         <mainClass>com.xxg.Main</mainClass>  
  12.                     </manifest>  
  13.                 </archive>  
  14.                 <descriptorRefs>  
  15.                     <descriptorRef>jar-with-dependencies</descriptorRef>  
  16.                 </descriptorRefs>  
  17.             </configuration>  
  18.         </plugin>  
  19.   
  20.     </plugins>  
  21. </build>  
打包方式:
[plain] view plain copy
  1. mvn package assembly:single  
打包后会在target目录下生成一个xxx-jar-with-dependencies.jar文件,这个文件不但包含了自己项目中的代码和资源,还包含了所有依赖包的内容。所以可以直接通过java -jar来运行。
此外还可以直接通过mvn package来打包,无需assembly:single,不过需要加上一些配置:
[html] view plain copy
  1. <build>  
  2.     <plugins>  
  3.   
  4.         <plugin>  
  5.             <groupId>org.apache.maven.plugins</groupId>  
  6.             <artifactId>maven-assembly-plugin</artifactId>  
  7.             <version>2.5.5</version>  
  8.             <configuration>  
  9.                 <archive>  
  10.                     <manifest>  
  11.                         <mainClass>com.xxg.Main</mainClass>  
  12.                     </manifest>  
  13.                 </archive>  
  14.                 <descriptorRefs>  
  15.                     <descriptorRef>jar-with-dependencies</descriptorRef>  
  16.                 </descriptorRefs>  
  17.             </configuration>  
  18.             <executions>  
  19.                 <execution>  
  20.                     <id>make-assembly</id>  
  21.                     <phase>package</phase>  
  22.                     <goals>  
  23.                         <goal>single</goal>  
  24.                     </goals>  
  25.                 </execution>  
  26.             </executions>  
  27.         </plugin>  
  28.   
  29.     </plugins>  
  30. </build>  

其中packagesingle即表示在执行package打包时,执行assembly:single,所以可以直接使用mvn package打包。
不过,如果项目中用到Spring Framework,用这种方式打出来的包运行时会出错,使用下面的方法三可以处理

没有评论:

发表评论