首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ivy 2.0 -带有重复子元素的ivy.xml

Ivy 2.0 -带有重复子元素的ivy.xml
EN

Stack Overflow用户
提问于 2012-03-23 19:17:54
回答 1查看 150关注 0票数 1

这是我的ivy.xml的一个例子:

代码语言:javascript
复制
<dependency org="org1" name="module1" rev="1.0.0"> 
  <artifact name="lib1-1.0.0" type="jar" /> 
</dependency> 
<dependency org="org1" name="module1" rev="1.0.0">
  <artifact name="lib2-1.0.0" type="jar" />
</dependency>

使用ivy 1.0,我可以下载这两个工件

当我将我的版本升级到ivy-2.0.0时,只下载了其中一个工件。

常春藤设置中是否有我必须指定的内容?我知道如果我像这样写这个文件:

代码语言:javascript
复制
<dependency org="org1" name="module1" rev="1.0.0"> 
  <artifact name="lib1-1.0.0" type="jar" /> 
  <artifact name="lib2-1.0.0" type="jar" /> 
</dependency>

它起作用了!

但是为什么不是第一个例子呢?有解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2012-03-23 19:43:24

第一个看起来是非法的。从ivys的观点来看,您声明了两次相同的依赖项。当依赖关系解析完成时,其中一个会被丢弃(省略),因为它假设它们是相等的,并且只应采用一个。对我来说,这样做似乎是一种糟糕的做法。

第二个要好得多,因为它的定义很清楚,看起来不会很尴尬。

就我个人而言,我认为在存储库中部署一个ivy.xml会更好,它确切地定义了此模块发布的工件(请参阅publication tag,并可用于特定的conf。通过这种方式,您只需指定:

可能的解决方法:

我认为可以使用conflict标记来设置conflict manager to all。但我不知道它是否能行得通。

代码语言:javascript
复制
<dependencies>
  <dependency org="org1" name="module1" rev="1.0.0"> 
    <artifact name="lib1-1.0.0" type="jar" /> 
  </dependency> 
  <dependency org="org1" name="module1" rev="1.0.0">
    <artifact name="lib2-1.0.0" type="jar" />
  </dependency>
  <conflict org="org1" module="module1" manager="all"/>
</dependencies>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9838297

复制
相关文章

相似问题

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