gpt4 book ai didi

java - 在 distZip Gradle 任务中防止 jar 重复

转载 作者:行者123 更新时间:2023-11-30 07:15:18 25 4
gpt4 key购买 nike

我有一个 Gradle 项目,它具有来自不同存储库(mavenCentraljcenter)的大量依赖项。成功执行 distZip 任务并检查 zip 存档后,我发现某些 jar 在 lib 文件夹中重复:

  1. bcprov-jdk14-1.38.jar 和 bcprov-jdk14-138.jar
  2. bcmail-jdk14-1.38.jar 和 bcmail-jdk14-138.jar

Jar 元组具有相同的大小和内容。我想发生这种情况是因为在不同的存储库中这些依赖项具有不同的文件名。执行 distZip 任务时,如何防止 zip 文件中的 jar 重复?它可能是 distZip 任务的默认功能或某些启用选项吗?

作为一种解决方法,我相信我可以编写某种 distZip 任务处理程序和“挤压”依赖项 jar 元组(可能有两个、三个或更多副本),以便使用一些 Groovy 脚本仅留下一个,但我想知道这是默认解决方案吗?

最佳答案

https://stackoverflow.com/a/21315957/1828296 中所述,我发现依赖项对 Bouncy caSTLe 库具有传递依赖关系 - 它是 com.lowagie:itext - 通过发出 gradle dependency 并按 1.38 搜索和 138 值。

然后我像这样排除了这种依赖关系:

compile ('com.lowagie:itext:2.1.7+') {
排除组:“bouncycaSTLe”
}

还添加了最新的 Bouncy CaSTLe 版本:

编译 'org.bouncycaSTLe:bcprov-jdk15on:1.54+'
编译 'org.bouncycaSTLe:bcmail-jdk15on:1.54+'
编译 'org.bouncycaSTLe:bctsp-jdk15on:1.46+'
distZip 之后,没有旧版本或双倍的 jar - 只有现代版本。

关于java - 在 distZip Gradle 任务中防止 jar 重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38515113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com