使用Maven Assembly plugin将依赖打包进jar
一个Eclipse的工程,在pom中配置了若干依赖,需要将pom中所有的依赖全部打包进一个jar包中,可以选择的方案有maven-assembly-plugin和fatjar。以前采用fatjar进行打包,但是fatjar有不少问题,
1. 最近一次更新是在09年,无法支持新版本的eclipse。
2.支持最高的jdk版本是1.7
3. 打包速度慢(不是一般的慢)
4. 打成的jar包体积略大。
下面是一个Eclipse的工程,其中含有不少的maven依赖包:
采用export成runnable jar包的方式是行不通的,正确做法是在工程的pom.xml文件中配置maven-assembly-plugin,pom.xml的配置如下:
4.0.0com.cetc.dihdfs1.0jarhdfshttp://maven.apache.orgUTF-81.8maven-compiler-plugin2.3.21.81.8maven-assembly-pluginjar-with-dependenciescom.cetc.di.Appmake-assemblypackagesinglelog4jlog4j1.2.17junitjunit3.8.1testorg.springframework.dataspring-data-hadoop2.2.1.RELEASE
执行maven4MyEclipse->Update Project…
最后执行Run as->Maven build..->Select..->选择package目标。
目标执行后,可以在target目录下,找到生成的jar包:
使用Java Decompiler可以看到打包后,jar包的内容如下:
网友评论