注:最近工作中遇到的一个问题,写了一个日志处理的模块,现在需要给第三方客户使用,但是该模块依赖了我们自己写的或者修改的一些jar包,可选择方案:1、所有jar包放在一个文件夹中给第三方(感觉好不专业);2、将日志处理模块和依赖包全部打成一个jar包,明显这种方法专业且方便。因此引入maven的assembly插件来完成这个工作。
前提是:你的项目也是用maven来管理的。
1、在pom.xml文件中增加assembly插件:
org.apache.maven.plugins
maven-assembly-plugin
2.4
src/main/assembly/src.xml
2、在源代码main/assembly下创建一个src.xml文件,内容为:
jar-with-dependencies
jar
false
true
/lib
false
runtime
${project.build.outputDirectory}
/
3、执行mvn assembly:assembly命令,则在target文件夹中会看见新创建的{artifactId}-jar-with-dependencies.jar这个jar包,如下图:
4、查看这个jar包,可以看到有个lib文件夹,里面都是第三方依赖,此时的jar包由于包含第三方依赖,会比较大,上面的实际jar包有80M,如图:
注:执行命令过程中,可能会出现test和javadoc方面的错误,可以使用下面的命令跳过test和Javadoc:
mvn assembly:assembly -Dmaven.test.skip=true -Dmaven.javadoc.skip=true