web-dev-qa-db-ja.com

アイビーのキャッシュの場所を上書きするにはどうすればよいですか?

継続的インテグレーションビルドシステムの一部としてIvyを使用していますが、Ivyのローカルキャッシュ領域であるデフォルトの場所をオーバーライドする必要があります。

24
Brett Rigby

上記のskaffmanからの回答は正しいですが、予想よりもはるかに多くの作業が必要であることがわかりました。

Ivysettings.xmlファイルをプロジェクトに追加したとき、それまでデフォルト値が正常に機能していたため、ほとんどすべてを再定義する必要がありました。

そこで、NAntスクリプト内のインラインコマンドラインに新しいキャッシュディレクトリを追加する方法を見つけました...

< exec program="Java" commandline="... ... -jar ${ivy.jar} -cache ${project.cache} ... ... />

(どこ ${ivy.jar}は私の.jarファイルの場所であり${project.cache}は、スクリプトの前半でキャッシュ領域を使用する場所として設定された新しい場所です。)

これは、ivysettings.xmlファイルが不要であり、すべてをデフォルトのリゾルバーなどを使用するように戻すことができることを意味します。

4
Brett Rigby

ivysettings.xmlのこのようなもの:

<ivysettings>
    <caches defaultCacheDir="/path/to/my/cache/dir"/>
</ivysettings>

http://ant.Apache.org/ivy/history/latest-milestone/settings/caches.html のドキュメントを参照してください。

19
skaffman

私はJenkinsをCIビルドシステムとして使用し、$ HOME/.ivy2/ivysettings.xmlを作成します:

<ivysettings>
    <properties environment="env" />
    <caches defaultCacheDir="${env.WORKSPACE}/.ivy2/cache" />
</ivysettings>

これにより、各jenkinsジョブのワークスペースにivyキャッシュディレクトリが作成されます。

13
crazycode