2

最近、プロジェクトを構築するためにAntからBuildrに切り替えました。ivy4r Buildr拡張機能を使用して、依存関係の管理にIvyを使用します。オフィスには、パブリックアーティファクトのキャッシュとして使用され、独自のアーティファクトも公開するローカルリポジトリがあります。

ここで問題があります。Officeリポジトリにアクセスできないときにプロジェクトをビルドできるようにしたいと思います。Buildrには、オフラインで動作するように指示するフラグがあります(-o)が、ivy4rはこれを考慮していないようです。Ivyがアーティファクトをダウンロードしようとしないようにする方法はありますか?私はそれらすべてを私のマシンのキャッシュですでに利用可能にしています。

4

1 に答える 1

8

キャッシュタイムアウトを永遠に設定する

キャッシュプロパティ${ivy.cache.ttl.default}をeternalに設定すると、TTLが設定されます。これにより、リポジトリで新しいリビジョンがチェックされなくなります。

これは、次のパラメーターを指定してantを呼び出すことで実現できます。

ant -Divy.cache.ttl.default=eternal build

これはドキュメントからです:

解決されたリビジョンキャッシュのTTL(Time To Live)ルールを定義します。Ivyが動的バージョン制約(latest.integrationやバージョン範囲など)を解決するとき、TTLと呼ばれる特定の時間の解決結果(latest.integration = 1.5.1など)を保存できます。これは、リフレッシュモードでresolveを実行しない限り、IvyがTTLの期間中、リポジトリにアクセスせずにこの動的リビジョン解決の結果を再利用することを意味します。

..。

TTL期間を「eternal」に設定することもできます。この場合、一度解決されると、更新モードで解決する場合を除いて、リビジョンが常に使用されます。

その他の参考資料:

解決タスクにUseCacheOnlyを設定する

解決タスクには属性useCacheOnlyがあり、これを使用して次のことができます。

リゾルバーに、実際のコンテンツではなく、キャッシュのみを使用するように強制します

例:

<ivy:resolve file="path/to/ivy.xml" useCacheOnly="true/>
于 2011-08-08T06:55:57.023 に答える