0

私は春のバッチプロジェクトにツタを使用しています。

ivy.xml

<ivy-module version="2.0">
    <info organisation="apache" module="hello-ivy"/>
    <dependencies>
        <dependency org="commons-lang" name="commons-lang" rev="2.0"/>
        <dependency org="commons-cli" name="commons-cli" rev="1.0"/>
        <dependency org="commons-net" name="commons-net" rev="3.1" />

        <dependency org="com.jcraft" name="jsch" rev="0.1.48"/><!-- used for SFTP-->
        <dependency org="log4j" name="log4j" rev="1.2.17"/>
        <dependency org="com.google.guava" name="guava" rev="14.0-rc2"/>
        <dependency org="joda-time" name="joda-time" rev="2.1"/>

        <dependency org="org.springframework" name="spring-aspects" rev="3.1.2.RELEASE"/>
        <dependency org="org.springframework" name="spring-aop" rev="3.1.2.RELEASE"/>
        <dependency org="org.springframework" name="spring-context" rev="3.1.2.RELEASE"/>
        <dependency org="org.springframework" name="spring-core" rev="3.1.2.RELEASE"/>
        <dependency org="org.springframework" name="spring-test" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-beans" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-jdbc" rev="3.1.2.RELEASE" />

        <dependency org="org.springframework" name="spring-tx" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-asm" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-expression" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-context-support" rev="3.1.2.RELEASE" />

        <dependency org="org.springframework.batch" name="spring-batch-core" rev="2.1.9.RELEASE"/>
        <dependency org="org.springframework.batch" name="spring-batch-infrastructure" rev="2.1.9.RELEASE"/>
    </dependencies>
</ivy-module>

ivysettings.xml

<ivysettings>
<settings defaultResolver="spring.chain"/>
<resolvers>
    <chain name="spring.chain">
        <url name="com.springsource.repository.bundles.release">
            <ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
            <artifact pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
        </url>
        <url name="com.springsource.repository.bundles.external">
            <ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
            <artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
        </url>
        <ibiblio name="ibiblio" m2compatible="true"/>
    </chain>
</resolvers>
</ivysettings>

joda2が必要になるまで、すべてが素晴らしかった。ここでの問題は、ツタがcom.springsource.org.joda.time-1.6.0.jarやjoda-time-2.1.jarのようなものを持ってきていることです。春からすべてのクローンjarを持ち込まないようにツタを作る方法はありますか(com.springsource.org.joda.time-1.6.0.jar、com.springsource.org.apache.regexp-1.5.0.jarなど)?

ありがとう

4

1 に答える 1

1

依存関係は、ivyファイル内のexcludeディレクティブを使用して除外できます。

<exclude module="com.springsource.org.joda.time"/>

この例の2番目の機能は、Mavenリポジトリーからコンテンツを取得するためのibiblioリゾルバーの使用です。

最後に、この例にはivycleancacheタスクの呼び出しが含まれています。これは、リゾルバー設定を大幅に変更する場合に必要です。これにより、ivyがキャッシュ内の古いデータを再利用しないようになります。

build.xml

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

    <target name="resolve">
        <ivy:resolve/>
        <ivy:report todir="build/ivy" graph="false"/>
    </target>

    <target name="clean">
        <delete dir="build"/>
    </target>

    <target name="clean-all" depends="clean">
        <ivy:cleancache/>
    </target>

</project>

ノート:

  • アイビーキャッシュをパージする「クリーンオール」ターゲットを備えています
  • レポートアイビータスクは、依存関係管理レポートを生成するのに役立ちます。

ivysettings.xml

<ivysettings>
    <settings defaultResolver="central"/>
    <resolvers>
        <ibiblio name="central" m2compatible="true"/>
        <ibiblio name="springsource-external" m2compatible="true" root="http://repository.springsource.com/maven/bundles/external"/>
    </resolvers>
    <modules>
        <module name="com.springsource.*" resolver="springsource-external"/>
    </modules>
</ivysettings>

ノート:

  • デフォルトはMavenCentralです。
  • 再パッケージ化されたSpringsourceバンドルを「外部」Mavenリポジトリから復元します
  • このアプローチは、「チェーン」リゾルバーを使用する場合と比較して、より詳細な制御を提供します。

ivy.xml

<ivy-module version="2.0">
    <info organisation="apache" module="hello-ivy"/>
    <dependencies>
        <dependency org="commons-lang" name="commons-lang" rev="2.0"/>
        <dependency org="commons-cli" name="commons-cli" rev="1.0"/>
        <dependency org="commons-net" name="commons-net" rev="3.1" />

        <dependency org="com.jcraft" name="jsch" rev="0.1.48"/><!-- used for SFTP-->
        <dependency org="log4j" name="log4j" rev="1.2.17"/>
        <dependency org="com.google.guava" name="guava" rev="14.0-rc2"/>
        <dependency org="joda-time" name="joda-time" rev="2.1"/>

        <dependency org="org.springframework" name="spring-aspects" rev="3.1.2.RELEASE"/>
        <dependency org="org.springframework" name="spring-aop" rev="3.1.2.RELEASE"/>
        <dependency org="org.springframework" name="spring-context" rev="3.1.2.RELEASE"/>
        <dependency org="org.springframework" name="spring-core" rev="3.1.2.RELEASE"/>
        <dependency org="org.springframework" name="spring-test" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-beans" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-jdbc" rev="3.1.2.RELEASE" />

        <dependency org="org.springframework" name="spring-tx" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-asm" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-expression" rev="3.1.2.RELEASE" />
        <dependency org="org.springframework" name="spring-context-support" rev="3.1.2.RELEASE" />

        <dependency org="org.springframework.batch" name="spring-batch-core" rev="2.1.9.RELEASE"/>
        <dependency org="org.springframework.batch" name="spring-batch-infrastructure" rev="2.1.9.RELEASE"/>

        <exclude module="com.springsource.org.joda.time"/>
    </dependencies>
</ivy-module>

ノート:

  • springsourceによって再パッケージ化されたjodaタイムモジュールの解決を防ぐための「exclude」タグがあります。
于 2013-02-09T13:49:55.277 に答える