首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >常春藤冲突解决不起作用

常春藤冲突解决不起作用
EN

Stack Overflow用户
提问于 2012-12-12 23:52:50
回答 1查看 2.3K关注 0票数 3

我的模块A依赖于模块B和C,这两个模块都依赖于模块D的不同版本。我的常春藤依赖关系如下:

代码语言:javascript
复制
<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>

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

代码语言:javascript
复制
[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])

为什么冲突标签不告诉艾薇使用模块D的2.4版本?我希望使用严格的冲突解决方法,然后一次覆盖一个冲突,这样我们就可以清楚地知道,我们冒的风险是不使用另一个项目的pom/ivy中提到的依赖项的版本。向org.c依赖项添加org.d的排除将消除冲突,但在我看来,对文件的未来读者来说,使用冲突标记更清楚。

EN

回答 1

Stack Overflow用户

发布于 2015-12-21 16:14:53

您还可以尝试为模块D设置force属性。在本例中,这将迫使Ivy接受2.4:

代码语言:javascript
复制
<dependency org="org.d" module="D" rev="2.4" conf="runtime->default" force="true" />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13850739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档