700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > gradle7打包libs目录中的jar生成fat jar

gradle7打包libs目录中的jar生成fat jar

时间:2019-07-15 06:42:30

相关推荐

gradle7打包libs目录中的jar生成fat jar

需求

需要做一个公共业务包,包里引用了一些第三方的jar(文件形式), 需要打一个整包给业务服务使用,让业务服务不用关注这些第三方的jar, 同时不要打包其他的像日志库之类的东西。

解决

修改jar任务:

jar {from {configurations.runtimeClasspath.findAll {//打包所有libs目录中的jar文件it.parent.equals(project.rootDir.path + '/libs') && it.name.endsWith(".jar")}.collect {println 'add ' + it.namezipTree(it)}}}

打包,报错了:

What went wrong:

Execution failed for task ‘:jar’.

Entry META-INF/spring.factories is a duplicate but no duplicate handling strategy has been set.

提示文件META-INF/spring.factories重复

spring.factories是启动类, 想了想,我把第三方包中的启动类写到了当前项目的spring.factories中,然后在from中指定排除相同的文件:

jar {from {duplicatesStrategy = DuplicatesStrategy.EXCLUDE....}}

再次打包:

BUILD SUCCESSFUL in 735ms

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。