我有一个Gradle项目,它有很多来自不同存储库的依赖项(mavenCentral
,jcenter
)。成功distZip
任务执行并检查zip存档后,我发现某些jar文件在lib
文件夹中重复:
Jar元组具有相同的大小和内容。
我想这是因为在不同的存储库中这些依赖项具有不同的文件名。
执行distZip
任务时,如何防止zip文件中的jar重复?它可能是distZip任务的默认功能还是启用某些选项?
作为一种解决方法,我相信我可以编写某种distZip
任务处理程序和'挤压'依赖关系jar元组(可能有两个,三个或更多副本)只留下一个使用一些Groovy脚本,但我想知道这是一个默认的解决方案吗?
答案 0 :(得分:1)
正如https://stackoverflow.com/a/21315957/1828296中所述,我发现依赖关系对于Bouncy城堡图书馆具有传递依赖性 - 它是com.lowagie:itext
- 发布gradle dependencies
并按1.38
和{{搜索1}}值。
然后我对这种依赖关系进行了排除:
138
还添加了最新的Bouncy Castle版本:
compile ('com.lowagie:itext:2.1.7+') {
exclude group: "bouncycastle"
}
在compile 'org.bouncycastle:bcprov-jdk15on:1.54+'
compile 'org.bouncycastle:bcmail-jdk15on:1.54+'
compile 'org.bouncycastle:bctsp-jdk15on:1.46+'
之后,没有旧版本或双罐装 - 只是现代版本。