default" /> -6ren">
gpt4 book ai didi

build - Ivy 冲突解决方案不起作用

转载 作者:行者123 更新时间:2023-12-01 09:57:36 25 4
gpt4 key购买 nike

我的模块 A 依赖于模块 B 和 C,它们都依赖于不同版本的模块 D。我的 Ivy 依赖如下所示:

<ivy-module>
<info organisation="com.a" module="A"/>
<configurations defaultconf="runtime">
<conf name="runtime"/>
</configurations>
<dependencies>
<dependency org="org.b" name="B" rev="2.0" conf="runtime->default" />
<dependency org="org.c" name="C" rev="2.4" conf="runtime->default" />
<conflict org="org.d" module="D" rev="2.4"/>
</dependencies>
</ivy-module>

我正在使用严格的冲突解决管理器,它正确地指出了冲突:

[ivy:retrieve] :: Apache Ivy 2.3.0-rc2 - 20121105223351 :: http://ant.apache.org/ivy/ ::
...
...
[ivy:retrieve] :::: ERRORS
[ivy:retrieve] org.d#D;2.3 (needed by [org.c#C;2.4]) conflicts with org.d#D;2.4 (needed by [org.b#B;2.0])

为什么冲突标签不告诉 Ivy 使用模块 D 的 2.4 版?我想使用严格的冲突解决方案,然后一次覆盖一个冲突,以便清楚我们在哪里冒着不使用另一个项目的 pom/ivy 中提到的依赖项版本的风险。在 org.c 依赖项中添加对 org.d 的排除可以消除冲突,但在我看来,使用冲突标记对于文件的 future 读者来说更清晰。

最佳答案

您还可以尝试为模块 D 设置 force 属性。这将强制 Ivy 在本例中采用 2.4:

<dependency org="org.d" module="D" rev="2.4" conf="runtime->default" force="true" />

关于build - Ivy 冲突解决方案不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13850739/

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