他の人が自分のプロジェクトにsvn:externals
プロパティを使って含むマスターIvyプロジェクトを持っています。このプロジェクトには、Ivy jar、プロジェクトに接続するデフォルトのivysettings.xmlファイル、jarファイルの構築方法を標準化するAntマクロが含まれています(たとえば、ユーザは<jar.macro>
と<jar>
を使用します)。<jar.macro>
同じパラメータを使用しますが、pom.xml
をJARファイルに自動的に埋め込み、Jenkinsビルド情報をManifestに追加します)。Ivy:<ivy:settings>対<ivy:configure>
また、Jenkinsを継続的インテグレーションシステムとして使用しています。私がしたいことの1つは、ビルドごとにIvyキャッシュを消去することです。そのため、キャッシュの問題によりjarの問題は発生しません。これを行うために、私は私のセットアップivysettings.xml
ファイルごとジェンキンスキュータに別々のキャッシュを定義しました:
<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>
タスクを使用していました。しかし、Jenkinsのエグゼキュータのすべてが問題を引き起こした同じIvyキャッシュを使用していました。 <ivy:settings>
から<ivy:configure>
に切り替わり、問題は解決しました。明らかに、<ivy:configure>
は、<ivy:settings>
が<ivy:resolve>
が呼び出されるまでIvyを設定しないうちに、即座にIvyを設定し(したがって、キャッシュを正しく設定する)
Nabbleについてのメールは、<ivy:configure>
については非推奨となっています(またはそうでないかもしれない)。私はアイビーのオンライン文書で何も参照していないと述べている<ivy:configure>
は非難されている。
したがって、<ivy:settings>
と<ivy:configure>
を使用するのはいつですか。私の場合、ジェンキンスのエグゼキュータごとに別々のキャッシュが必要なので、<ivy:configure>
を使用する必要がありましたが、<ivy:settings>
を<ivy:configure>
以上に使用する理由がありますか?そして、<ivy:configure>
は推奨されていませんか?ここ
優秀な質問です。私は決して "構成"タスクを使用していません。あなたが複数のivy設定ファイルを使用して、いくつかのivy解決タスクを実行できるようにするために、設定タスクがより有用であると思われます。私はめったに2回以上のアイビーの解決策を呼び出すことはほとんどないので、私の場合はタスク間に実際の機能上の違いはないと思われます: –
''と ' a _settings ID_のように、両方とも複数の設定と複数の解決を使用できるようです。これは ''ドキュメントで明示的に言及していますが、どちらのタスクもこの機能をサポートしているようです。私は ''がIvy 2.xで使うデフォルトのものだと信じていますが、私の ''は ' :configure> ' –
おそらく、この質問は開発者のメーリングリストに投稿されるのがベストでしょう。私が言ったように、私はめったにビルドでアイビーの解決を2回以上行うことはありません。これは、設定IDを指定する必要がない理由を説明しています。ええ、それは少しのパズルです –