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代码如下:

<assembly
	xmlns="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文件,就可以运行!

猜你喜欢

转载自mengyunshuitian.iteye.com/blog/1759864