2011-07-29 2 views
1

私の同僚は(アイビーにまだ多少新しい)私たちの成果物を維持する上での欠陥を指摘した:ステータス属性によってIvyの解像度が異なるのですか?

リリースビルドは、それがビルドを減速ビルドごとに新しいバージョンの再チェックされることを意味「統合」としてマークされていますたとえそれが依存関係をキャッシュしたとしても。

これは、私が思うに、アイビーは、配信するバージョンを決定する前に、何がレポであるかを確認する必要があるからです。だから、私はちょっと調べて、異なるステータス値を持つライブラリをマークすることの効果を正確に理解することにしました。 私はドキュメンテーションやネット上で多くを見つけることができません。私は何が欠けていますか? 誰かがこれにいくつかの光を当てることができますか?

ありがとうございました

答えて

1

ステータスは単なる文字列で、ivyのために定義できます。彼らはアーティファクト自体の解決には影響しません。デフォルトの検索には影響しません。それはアーティファクトの単なるマーカーです。

Status:リビジョンの

ステータスは、モジュールのステータスは 改正を考えることができるか、安定モジュールを示しています。モジュールのすべての依存関係の状態 を統合して、モジュールのリリースにおける依存関係の統合リビジョンを使用しないようにすることができます。

3つの状態がアイビーにデフォルトで定義されています。

integration: revisions builded by a continuous build, a nightly 

ビルド、というように、このカテゴリ マイルストーンに落ちる:リビジョンは、公衆に配信が、実際に このカテゴリ リリースでは秋に終了していません。リビジョンは完全にあなたの同僚は述べたものを達成するために declare the dependency as changing or the resolver definitionに必要

この カテゴリでテストされ、秋ラベル:

成果物の変更一部の人々は、Mavenの2 土地から来特に、頻繁に更新 モジュールを処理するために、1つの特別なリビジョンを使用したいです。 Maven 2ではこれをSNAPSHOTバージョンといい、 は、開発中に作成できる中間ビルドの数が 個であるため、ディスク容量を節約して1つのバージョンのみを保持するのに役立つと主張しています。

Ivyは、「 リビジョンを変更する」という概念でこのようなアプローチをサポートしています。変更のリビジョンはちょうどそれです:Ivy がアーティファクトが時間とともに変化すると考えるべきであるリビジョン。 これを処理するには、 依存関係タグの変更を依存関係として指定するか、リゾルバのchangingPattern属性とchangingMatcher属性を使用して、リビジョンまたはグループのいずれのリビジョンまたはグループを変更するかを指定します。

アイビーは、リビジョンが変化していることを知っていたら、あまりにも頻繁にあなたのリポジトリをチェックしないようにするには、この 原則に従います:モジュール メタデータが変更されていない場合は変更しないように、それは (アーティファクトを含む)全体のモジュールとみなされます。モジュール記述子 が変更された場合でも、モジュールの公開データを にチェックします。これは、同じリビジョンの新しい公開であるかどうかを確認します。次に、 公開日が変更された場合は、成果物の最後の 変更されたタイムスタンプをチェックし、それに応じてダウンロードします。

変更するリビジョンを使用する場合は、公開タスクを使用して モジュールを公開すると、公開 の日付が更新され、すべて正常に動作します。

+0

感謝します、大変ありがとうございます! – AlexeiOst

関連する問題