Java Ivy 2.0-具有重复子元素的Ivy.xml

Java Ivy 2.0-具有重复子元素的Ivy.xml,java,ant,ivy,Java,Ant,Ivy,这是my 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"

这是my 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>

使用Ivy1.0,我可以下载这两个工件

当我将我的版本升级到ivy-2.0.0时,只有一个工件被下载

常春藤的环境中有什么我必须指定的吗? 我知道如果我这样写文件:

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

它起作用了

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

第一个似乎是非法的。从常春藤的观点来看,您两次声明相同的依赖关系。当依赖项解析完成时,其中一个将被丢弃(ommited),因为假定它们相等,只应取一个。对我来说,这样做似乎不好

第二个更好,因为它的定义很清楚,看起来也不尴尬

就我个人而言,我认为最好在存储库中部署一个ivy.xml,它准确地定义了此模块发布的工件(请参阅,并且可用于特定的配置)。通过这种方式,您可以指定:

可能的解决办法: 我想可以用这个标签来设置。但是我不知道它是否有效

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

第一个似乎是非法的。从常春藤的角度来看,你声明了两次相同的依赖关系。当完成依赖关系解析时,其中一个被删除(ommited),因为假设它们相等,只应取一个。对我来说,这样做似乎是不好的做法

第二个更好,因为它的定义很清楚,看起来也不尴尬

就我个人而言,我认为最好在存储库中部署一个ivy.xml,它准确地定义了此模块发布的工件(请参阅,并且可用于特定的配置)。通过这种方式,您可以指定:

可能的解决办法: 我想可以用这个标签来设置。但是我不知道它是否有效

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