maven打包可运行的JAR(一)
2017-11-30 本文已影响0人
西蒙吹牛
使用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依赖包:
![](https://img.haomeiwen.com/i7087205/bc61a487d3f5d592.png)
采用export成runnable jar包的方式是行不通的,正确做法是在工程的pom.xml文件中配置maven-assembly-plugin,pom.xml的配置如下:
![](https://img.haomeiwen.com/i7087205/2610f26a86e51840.gif)
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
![](https://img.haomeiwen.com/i7087205/59d5066969442e11.gif)
执行maven4MyEclipse->Update Project…
![](https://img.haomeiwen.com/i7087205/56aad78b64d69ee7.png)
最后执行Run as->Maven build..->Select..->选择package目标。
![](https://img.haomeiwen.com/i7087205/da101bd83fa349be.png)
目标执行后,可以在target目录下,找到生成的jar包:
![](https://img.haomeiwen.com/i7087205/c0655087b5bdff5c.png)
使用Java Decompiler可以看到打包后,jar包的内容如下:
![](https://img.haomeiwen.com/i7087205/a6b304bb3714a59d.png)