2013-04-04 77 views
0

我很清楚这不是个好主意,但我需要用多个版本来定义依赖关系。我还想知道是否有可能解决此类钻石依赖关系的所有传递依赖关系。例如,如果项目的两个依赖项每个都依赖于commons-lang2.13.0),并且项目本身定义了版本2.5,我希望能够下载所有三个版本以及它们的传递依赖项。这是否可能,我该怎么做?常春藤可以下载相同依赖项的多个版本吗?

回答

3

要回答我的问题,“是”,如下图所示:

<ivy-module version="2.0"> 
    <info organisation="com.foo" 
      module="diamond-dependency" 
      revision="1.0-SNAPSHOT"/> 

    <dependencies> 
     <dependency org="javax.activation" name="activation" rev="1.1-rev-1"/> 
     <dependency org="org.apache.commons" name="commons-email" rev="1.3.1"/> 
     <conflict manager="all"/> 
    </dependencies> 

</ivy-module> 

关键位是,在这种情况下,被告知要解决所有冲突的依赖关系冲突管理器部分。

以上将有依赖关系树看起来像这样(含三个不同版本的javax.activation:activation

+- javax.activation:activation:jar:1.1-rev-1:compile 
\- org.apache.commons:commons-email:jar:1.3.1:compile 
    +- javax.mail:mail:jar:1.4.5:compile 
    | \- (javax.activation:activation:jar:1.1:compile - omitted for conflict with 1.1-rev-1) 
    \- (javax.activation:activation:jar:1.1.1:compile - omitted for conflict with 1.1-rev-1) 
+0

然而,奇怪的是,'javax.activation中:激活:罐子:1.1'没有得到解决。 – carlspring 2013-04-05 14:06:53

相关问题