2009-05-22 4 views
2

私はモジュールAがモジュールBのビルドによって作成されたaa.jarファイルに依存するメインプロジェクトを持っています。私は開発中ですが、Bを定期的に変更してからBをビルドしてライブラリを作成し、これらの変更を使用するにはローカルファイルでポイントツーシー依存関​​係?

私のモジュールBビルドが作成するjarファイルにモジュールAのivyファイルを指す方法はありますか?私が何度も反復していることを考えれば、モジュールBのjarファイルを繰り返しアイビーにチェックしたくない。モジュールBをビルドしたあと、そのジャーをモジュールAのビルドディレクトリ構造にコピーしなければならないのも面倒です。

実際、私にとっては、依存ツリー(A-> B-> CD)に約4つのモジュールがあるので、私にとっては悪いことです。もしそれがちょうどAとBだったら私はたぶんそれと一緒に暮らしていただろうが、サブモジュールがビルドされた後にjarファイルをコピーするのがうんざりだし、ivyファイルの依存関係行をオーバーライドして、人生をもっと簡単にする。

+0

IDEまたはコマンドラインで作業していますか?どちらの場合でも依存関係を必要としますか、デバッグのためにのみ依存関係を必要としますか? – Jherico

答えて

4

ローカルにビルドされたモジュールでIvy依存関係を指すことは、これを解決する方法ではありません。代わりにモジュールBをビルドすると、ローカルのIvyリポジトリに公開されます。モジュールAの依存関係を解決すると、ローカルリポジトリからモジュールBがプルダウンされます。

From the Ivy docs on the local repository

あなたが他の環境で起こって何も に邪魔されることなく、何か をしたいときに、ローカルリポジトリには、特に 便利です。 これは、ivyが がこのリポジトリ内のモジュールを見つけることができるときはいつでも、 が利用可能であることにかかわらず、 が使用されることを意味します。あなたは、改訂latest.integrationにおけるモジュール FOOへの依存関係を宣言モジュール を持っている 場合のfooの改訂が ローカルリポジトリに発見された場合、その後、それが使用されます。例えば

、 場合でも、最近のリビジョンは で、他のリポジトリで利用可能です。

これはあなた のいくつかのために妨害することができますが、 にプロジェクトに新しい機能を実装する必要が想像する、と ために、次の2つのモジュールを変更 に必要なことを達成することがあります。あなたが新しい メソッドを追加しますモジュールfooを使用し、この 新しいメソッドをモジュールバーで悪用します。あなたがお住まいの地域 リポジトリへのモジュールfooのを公開 続いた場合、あなたは他の誰か が で共有リポジトリ( が持っていない、この改正をFOOの新しいリビジョンを公開していても、あなたのバーモジュールでそれを を得るようにしてくださいます新しい方法は現在 です)。

しかし、あなたは あなたの開発を完了し、 が共有 リポジトリで公開され、新たな バージョンの恩恵を受けるためにあなたの ローカルリポジトリをきれいにする必要があります共有で公開している際に、注意してください。 ローカルリポジトリに見出さモジュールが完了しなければならないことも

注、 はすなわち、それらは、モジュール 記述および公開 アーチファクトの両方を提供しなければなりません。

Using Ivy in multiple projects environmentには、役に立つと思われる例のpublish-localの例があります。