4

いくつかの jar をパッケージ化する必要がある特別な状況があり、両方のバージョンの jar が必要です。私のツタの定義は次のようになります。

<dependency org="blah" name="blahname" rev="1.0.0" conf="baseline->default" />

同じ依存関係を、バージョン 1.0.0 で 1 回、バージョン 2.0.0 で 2 回解決したいと考えています。それは可能ですか?これを達成する最も簡単な方法は何ですか。

4

1 に答える 1

8

アイビー構成を使用して、依存関係のカスタム グループを作成および管理します。

アイビー.xml

<ivy-module version="2.0">
    <info organisation="com.myspotontheweb" module="demo"/>

    <configurations>
        <conf name="group1" description="First group of dependencies"/>
        <conf name="group2" description="Second group of dependencies"/>
    </configurations>

    <dependencies>
        <dependency org="commons-lang" name="commons-lang" rev="2.6" conf="group1->default"/>
        <dependency org="commons-lang" name="commons-lang" rev="2.0" conf="group2->default"/>
    </dependencies>

</ivy-module>

build.xml

<project name="demo" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">

    <target name="resolve">
        <ivy:resolve/>

        <ivy:retrieve pattern="lib/[conf]/[artifact]-[revision].[ext]"/>
    </target>

</project>

ノート:

  • この例では、retrieve タスクを使用して「lib」ディレクトリにデータを取り込みます。「cachepath」および「cachefileset」タスクも参照してください。

結果

Lib ディレクトリには、目的の jar が取り込まれます。

$ tree
.
|-- build.xml
|-- ivy.xml
`-- lib
    |-- group1
    |   `-- commons-lang-2.6.jar
    `-- group2
        `-- commons-lang-2.0.jar
于 2012-06-08T00:52:45.610 に答える