gpt4 book ai didi

gradle - 为什么要包含特定的 jar 文件?

转载 作者:行者123 更新时间:2023-12-03 03:14:25 24 4
gpt4 key购买 nike

我有一个使用 gradle 和 mavenCentral() 的项目(加上 mavenLocal())。它有足够的依赖关系,我无法一一浏览。

给定 build/install/x/lib 中的 .jar 文件的名称,我如何找出导致它被包含的传递依赖链?

更新:我发现了gradle dependencies .输出显示:

org.apache.commons:commons-jexl:2.1.1
\---- commons-logging:commons-logging:1.1.1 -> 1.1.3

这是什么意思? 1.1.1 是我期望的版本,而 1.1.3 是我似乎最终使用的版本。看 the pom for commons-jexl看起来它确实列出了 logging:1.1.1 作为要求。这是怎么回事?我有没有办法告诉它避免使用某些版本,或者强制它使用它设置的版本?

我的问题是它包含一个 -SNAPSHOT 版本,我宁愿它没有。事实上,我可能希望它只使用我要求的版本号,而不是它可以找到的最新版本号。

最佳答案

gradle-managed 项目的依赖有它们自己的依赖(它们被称为传递)。可能会发生(并且经常发生)两个不同的依赖项具有相同的(组和模块)依赖项,但版本不同)。 commons-logging:commons-logging 就是这种情况。 .在这种情况下,有两个传递依赖项,其中一个版本使用 1.1.1第二个是 1.1.3 .如果这两个库都将包含在最终工件中,则可能会导致冲突和异常。为了防止这种情况,gradle 尝试通过选择(默认)最新版本来解决提到的版本解析问题。用右箭头表示->here .您可以从特定依赖项中排除传递依赖项。 This手册的章节可能有用。

关于gradle - 为什么要包含特定的 jar 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31953570/

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