2012-04-11 4 views
0

私は現在、耳と戦争の2つのモジュールを宣言する親pomを持っています。耳は戦争に頼っています(そしてグループ/アーティファクトIDとパッケージングタイプとの依存関係を宣言します)。プロジェクトレベルからの耳の所見は、母親からではなくプロジェクトレベルから得ます

原子炉は親のポンレベルからパッケージングするとき、両方のアーチファクトを拾い上げ、期待通りに戦争を耳に適切にパッケージングします。しかし、耳のプロジェクトpom(両方のプロジェクトで要素を宣言しても親のpomを指し示しているにもかかわらず)からパッケージングすると、耳は戦争アーティファクトを見つけることができません。

耳のレベルでパッケージ化すると、Mavenは親に正しく到達しますが、親が含まれているさまざまなモジュールを繰り返して、成果物を取り上げることはありません。あなたの子育ての構造が壊れているよう

感謝:)

答えて

0

これはMavenが動作する方法です。大丈夫です。依存関係を解決するとき、Mavenはそれらをリアクタで探し、次にローカルリポジトリ、次にリモートリポジトリを探します。したがって、親プロジェクトレベルからビルドを行う場合、両方のプロジェクトが炉内にあるので、EARは簡単にWARを選択できます。 (具体的には、親子関係のためではなく、モジュールであるということです)。しかし、EARモジュールを単独で構築する場合、原子炉はWARとリモートrepoだけでなくローカルのrepoも提供できません。 WARモジュールをローカル・リポジトリーにmvn installでインストールし、EARを構築しようとすると、ローカル・リポジトリーを使用してWARアーティファクトが検出されます。

0

は、EARがWARに依存している場合、それは子モジュールでなければなりません、ね。

+0

これは私の元の意図でしたが、その場合、EARレベルのpomはモジュールアグリゲータとパッケージャの両方ではありませんか?私はそれがMavenではできないと考えました(つまり、モジュールを持ち、パッケージ化タイプPOMを持つか、EARとしてパッケージ化し、モジュールを持たない)。それは、WARとEARが並んでいるため、EARがWARを引き出すようになっています。より良いソリューションをお勧めしますか? – Rhys

関連する問題