maven发布 jar类型的工程
通过maven管理jar,当工程是jar类型时,发布时无法将依赖的jar一起打成jar包,本文将解决这个问题,和大家分享讨论
第一步,首先在pom.xml文件中,添加maven-assembly-plugin插件,代码如下
?
?
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>2.2.1</version><configuration><descriptors> <descriptor>assembly.xml</descriptor></descriptors></configuration></plugin>
?assembly.xml代码如下:
?
?
<assemblyxmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"><id>jar-with-dependencies</id><formats><format>jar</format></formats><includeBaseDirectory>false</includeBaseDirectory><dependencySets><dependencySet><unpack>false</unpack><scope>runtime</scope></dependencySet></dependencySets><fileSets><fileSet><directory>${project.build.outputDirectory}</directory></fileSet></fileSets></assembly>
?通过assembly.xml描述,我们可以将第三方依赖,统一打包到{artifactId}-jar-with-dependencies.jar 这个jar包,这样方便我们管理第三方依赖
?
第二步,通过maven的maven-jar-plugin插件,我们可以配置MANIFEST.MF中的Main-Class和Class-Path,声明程序入口和依赖包的路径,代码如下:
?
?
?
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.3.2</version><configuration><archive><manifest> <!--程序入口--> <mainClass>cn.creditease.loan.exchange.main.server.SpringRmiServer</mainClass><addClasspath>true</addClasspath><!--依赖的第三方包路径--><classpathPrefix>lib/</classpathPrefix></manifest><manifestEntries><Class-Path>.</Class-Path></manifestEntries></archive></configuration></plugin>?
?
第三步,新建一个文件夹,比如E:\test,将{artifactId}-jar-with-dependencies.jar和java -jar E:\test\{artifactId}.jar拷贝到test目录,在test目录下,新建一个lib目(<classpathPrefix>lib/</classpathPrefix>,放到lib目录下)和一个startup.bat文件,编辑startup.bat文件,添加?java -jar E:\test\{artifactId}.jar
最后,用压缩工具打开{artifactId}-jar-with-dependencies.jar,将里面所有的第三方jar全部拷贝到lib目录下,运行startup.bat文件,就可以运行!
?
?
?
?