gpt4 book ai didi

intellij-idea - 我可以让 Gradle 的 Idea 插件解析为 'newest' 版本的依赖项吗?

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

我的项目依赖于版本 n 中的库 A。
它还依赖于库 B,而库 B 又依赖于版本 n-1 中的 A。

运行 gradle dependencies 时,树显示我的项目和 B 都取决于版本 n 中的 A。

但是,当我运行 gradle idea 时,我得到一个同时报告了版本 n 和 n-1 的工作区。

我可以做任何事情来规避它并获得一个符合 gradle 依赖分辨率的创意工作区,而无需强制版本或更改我所依赖的版本吗?

我已经把它带到了 Gradle list ,但无济于事。

更新: 我已经上传了一个 sample configuration ,所以你可以自己试验一下。请注意 Guava (A) 在版本 10.0 和 11.0 中是如何出现的,这要感谢我和 Reflections (B) 的依赖。
从这个例子中,我了解到只有当 A 和 B 的依赖分布在子模块中时才会发生这种情况。
注意:我知道 Reflections 0.96 不适用于 Guava 11.0。这只是想到的第一件事。

最佳答案

为了能够关闭它,这是 Peter Niederwieser 所写的:

[This] 是预期的行为,不仅适用于 IDEA 插件,而且适用于一般的 Gradle。这是因为冲突解决当前是按配置完成的,而不是按构建完成的。当你执行 gradle dependencies在 Module1 和 Module2 中,您将获得与 IDEA 模块相同的结果。

如果两个模块都直接使用Guava,你应该指定直接依赖,这样就解决了问题。通常这是通过将依赖声明分解到父构建脚本中并从子脚本中按名称引用它们来完成的。 (这有点类似于 Maven 的 dependencyManagement 部分。)为所有配置强制一个版本是另一种解决方案。我希望 Gradle 的 future 版本将支持构建范围的冲突解决。

感谢您创建示例项目。这使得重现问题变得更加容易。顺便提一下,最好的提问地点是http://forums.gradle.org .

关于intellij-idea - 我可以让 Gradle 的 Idea 插件解析为 'newest' 版本的依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8989311/

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