2012-03-03 4 views
0

子から親プロジェクトを参照する方法:は、私がこのようなマルチモジュールプロジェクト持ち

  • GWTアプリ
  • モデル
  • Webアプリケーションを
(GWTアプリやモデルによって異なります)

私は、jettyを起動するなどのwebappsの目標を実行しようとすると、ビルドに失敗します。なぜなら、mavenは依存関係を見つけることができないからです(私はモジュールをローカルリポジトリにインストールしませんでした)。サブモジュールで目標を実行すると、すべての依存関係がコンパイル(再コンパイル)されるように、親のpomを参照する可能性のある方法はありますか?

答えて

1

あなたのポンポンファイルの例は素晴らしいことだが、私はいつもdependencyManagementタグで親ポンポンで依存関係を宣言マルチモジュールプロジェクトで:モジュールのポンポンで

<dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>group-a</groupId> 
     <artifactId>artifact-a</artifactId> 
     <version>1.0</version> 
     </dependency> 
... 

私はせずに、依存関係をdelcareバージョン:

<dependencies> 
    <dependency> 
     <groupId>group-a</groupId> 
     <artifactId>artifact-a</artifactId> 
    </dependency> 
... 

このように、各モジュールで同じバージョンが使用されています。

覚えておくべきことは、mavenのモジュールは親からの依存関係を継承しないということです。モジュール自体で使用される依存関係を宣言する必要があります。

もう1つのことは、IDEの外で(依存関係を検索する)、各モジュールをローカルリポジトリにインストールする必要があると思います。私は、あなたが親pomで実行していなければ、mavenがマルチモジュールプロジェクト内の未インストールの依存関係を検索するとは思わない。

0

あなたは親のポンポンを作る場合は、単にそれらのグループに何が子POMに自動的に継承されその後

<plugins> 
</plugins> 
<dependencies> 
</dependencies> 

のような定期的なセットアップを持っています。児童ポンポンはそれで親セクションを必要とします:

<parent> 
</parent> 

あなたも、このように子ポンポンで同じプラグインや依存関係を宣言する必要はありません。あなたが使用している場合は、親pomまたは親pomの中で何かを上書きしたい場合は、プラグインまたは依存関係を子POMにリストするだけでよい。私は実際に今週中に入って、私のビルドが今、うまく動作するようにしました(プラグイン設定のように親のpomにもっと多くのものがある小さな子供のポム)。

私はあなたに役立つかもしれない質問について質問しました: Maven - Parent Pom - Child Inheritance

関連する問題