java - ivy 2.0 - ivy.xml 具有重复的子元素

标签 java ant ivy

这是我的 ivy.xml 的示例:

<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 时,仅下载其中一个工件。

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

<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>

它有效!

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

最佳答案

第一个似乎是非法的。从ivys的角度来看,您声明了相同的依赖关系两次。当依赖性解析完成时,其中之一将被删除(省略),因为假设它们是相等的并且只应采用一个。对我来说,这样做似乎是不好的做法。

第二个要好得多,因为它的定义很清晰,而且看起来并不尴尬。

就我个人而言,我认为最好在存储库中部署一个 ivy.xml,它准确定义了该模块发布的工件(请参阅 publication tag 并可用于某个conf。这样您就可以指定:

可能的解决方法:

我想可以使用 conflict标签设置 conflict manager to all 。但不知道能不能成功。

<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>

关于java - ivy 2.0 - ivy.xml 具有重复的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9838297/

相关文章:

java - 如何决定在 JPA 中应使用哪种实体关系

java - 在centos上安装Apache Ant 1.8.4

java - 具有特殊字符的 Ant 属性

java - ant如何写url

maven - 如何使用 Sonatype Nexus 作为 Ivy 依赖项的镜像

java - 在 netbeans 中构建项目时 Ivy 错误

java - 使用 RestTemplate 和 RestTemplateCustomizer 与多个服务的正确架构是什么?

java - 使用 s :selectItems 在接缝中创建下拉菜单

java - 如何将 .mov、.avi、.wmv 转换为 mp4

ivy - gradle - 如何在 jar 中声明 jar 的依赖关系