1

これが良い考えではないという事実は十分承知していますが、複数のバージョンで依存関係を定義する必要があります。また、そのようなダイヤモンドの依存関係のすべての推移的な依存関係を解決できるかどうかも知りたいです。たとえば、プロジェクトの 2 つの依存関係がそれぞれcommons-lang(2.1および3.0) に依存しており、プロジェクト自体が version を定義し2.5ている場合、3 つのバージョンすべてを推移的な依存関係と共にダウンロードできるようにしたいと考えています。これはまったく可能ですか、どうすればそれを行うことができますか?

4

1 に答える 1

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>

重要なビットは、この場合、すべての競合する依存関係を解決するように指示されている競合マネージャー セクションにあります。

上記の依存関係ツリーは次のようになります (次の 3 つの異なるバージョンを含む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) 
于 2013-04-04T15:39:27.823 に答える