2011-08-11 8 views
3

私はプロジェクトBに依存するプロジェクトAを持っています。どちらも積極的な開発の内部プロジェクトです。 最新のProject Aリリースは1.1.2で、プロジェクトB 1.1.1に依存しています。 開発中のプロジェクトB 1.2.0に依存するプロジェクトA 1.2.0を開発中です。Ivy:依存関係のためにローカルスナップショットを強制する

<dependency org="my.org" name="projectB" rev="1.2.0" transitive="true" conf="..." changing="true"/> 

新しいときの積分は感謝ので、誰もが最新の統合は、すぐに彼らは公開されているとして構築し得る「変更」に、共通のローカルリポジトリ内のCIサーバによって押され、プロジェクトBの1.2.0のために構築します。

セイボブは、プロジェクトBにいくつかの変更が必要なプロジェクトAの新しい機能を開発しています。彼は自分のローカルプライベートレポジトリに新しいシェイプショットProject B 1.2.0を公開し、共通リポジトリのものよりも新しいので、ビルドでピックアップされます。これまですべてOKです。

しかし、アリスがプロジェクトBで何かをコミットすると、CIサーバはボブがローカルに持っているものよりも新しい共通のレポに1.2.0をプッシュします。現在Bobはローカルの変更を上書きする共通のバージョンを取得します。

当然私はBobがローカルバージョンを必要とする限り、Bobには1.2.0_snapshotのようなものを使用できます(名前をivy.xmlで終わらせる必要のない巧妙な方法でプロパティファイルを使用します)。共通のバージョンが正常であれば1.2.0に戻ります。 しかし、 "統合"(CIサーバによって生成されたものは常にその状態を持つ)よりも、ステータスが "スナップショット"(常にローカルビルドのステータスになる)のアーティファクトを強制的に使用する方法はありません。以上?

私は "latest.snapshot"を試しましたが、最近の場合は統合バージョンが必要です。

このパターンを処理するにはどうすればよいですか?

答えて

2

あなたのローカルリゾルバを「強制モード」にしたいと思います。 ivysettings.xmlのローカルリゾルバでforce = "true"を設定します。

で力モードの説明を参照してください:私は強制モードに見えたが、私の場合に適合していないようhttp://ant.apache.org/ivy/history/latest-milestone/settings/resolvers.html

+0

:それはリゾルバのレベルで動作します(私はそれが別の依存関係のために異なる動作をしたいと思いながら、 )、docは "内部的には、要求されたリビジョンを、私が必要としているものではない" latest.integration "で置き換えると述べています。 とにかくフィードバックいただきありがとうございます。 –

関連する問題