他の人がプロパティを介してプロジェクトに含めるマスター Ivy プロジェクトがありsvn:externals
ます。このプロジェクトには、Ivy jar、プロジェクトに接続するデフォルトの ivysettings.xml ファイル、および jar の作成方法などを標準化できるいくつかの Ant マクロが含まれています (たとえば、ユーザーは<jar.macro>
vsを使用します<jar>
。<jar.macro>
パラメータだけでなく、自動的にpom.xml
jar に埋め込み、Jenkins ビルド情報をマニフェストに追加します)。
また、継続的インテグレーション システムとして Jenkins を使用しています。私がやりたいことの 1 つは、ビルドごとに Ivy キャッシュを消去することです。これにより、キャッシュの問題による jar の問題が発生しなくなります。これを行うivysettings.xml
ために、Jenkins Executor ごとに個別のキャッシュを定義するようにファイルをセットアップしました。
<ivysettings>
<property name="env.EXECUTOR_NUMBER" value="0" override="false"/>
<caches
defaultCacheDir="${ivy.default.ivy.user.dir}/cache-${env.EXECUTOR_NUMBER}"
resolutionCacheDir="${ivy.dir}/../target/ivy.cache"/>
<settings defaultResolver="default"/>
<include file="${ivy.dir}/ivysettings-public.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
<include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>
私はもともとこの<ivy:settings>
タスクを使用して、Ivy でプロジェクトを構成しました。しかし、すべての Jenkins executor が同じ Ivy キャッシュを使用していたため、問題が発生していました。<ivy:settings>
からに切り替えた<ivy:configure>
ところ、問題は解決しました。が呼び出されるまでIvyを設定しない<ivy:configure>
一方で、Ivy をすぐに設定する (したがって、キャッシュを正しく設定する)ようです。<ivy:settings>
<ivy:resolve>
Nabble<ivy:configure>
で非推奨 (または非推奨) についてのメールを見たことがあります。Ivy のオンライン ドキュメントに<ivy:configure>
は、非推奨であることを示すものは何もありません。
では、いつ<ivy:settings>
vs.を使用しますか<ivy:configure>
。私の場合、Jenkins executor ごとに個別のキャッシュが必要だったので、 を使用する必要がありましたが、 を使用する<ivy:configure>
理由はありますか? そして、非推奨ですか?<ivy:settings>
<ivy:configure>
<ivy:configure>