2012-02-14 14 views
3

マルチモジュールプロジェクトを作成しようとしています。モデル、コントローラー、サービスクラスを含むJAR用のモジュールとWAR用のモジュールがあります。私はプロジェクトを構築して結果を生成しましたが、私は自分のフォルダの構造についてはわかりません。Mavenでマルチモジュールプロジェクトをアセンブルする方法

現在、私は同じプロジェクトで1つのMavenモジュールを作成しました。

フォルダは以下のとおりです。

Parent 
Module1 
Module2 

彼らは同じレベルですべてがある、ということは正しいでしょうか?または、Module1とModule2がParentフォルダ内にある必要がありますか?また、生成されたターゲットを各モジュールではなく親フォルダに表示することは可能ですか(または自動的に行われますか)。あるいはそれが必要ないかもしれません。

私はIntelliJ 11 IDEAを使用しています。

http://www.sonatype.com/books/mvnex-book/reference/multimodule-sect-intro.html

答えて

4

一般の人が(両方の論理的およびディレクトリ構造に)親の下のモジュールを置きます。しかし、それは法律ではありません。単なる推薦です。 これで、4つのpom.xmlファイルを作成しなければなりません: トップレベルに1つ、プロジェクトごとに1つ(parent、module1およびmodule2)。トップレベルのポンポンは、そのすべての3つのサブプロジェクトを言及する必要があります:

<modules> 
    <module>parent</module>  
    <module>module1</module> 
    <module>module2</module>   
</modules> 

のModule1と2が親に依存している場合(つまり同じレベルにある)だけ言う:

<dependencies> 
    <dependency> 
     <groupId>com.yourcompany.yourproject</groupId> 
     <artifactId>parent</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
<dependencies> 
+0

だから、IntelliJの中で、あなたはそれをどのように行うのでしょうか?親モジュールの内部にモジュールを作っていますか? – LuckyLuke

0

あなたはどちらかのすべて置くことができますモジュール、および親が同じ階層にあります。 私が見つけた良いアプローチは、pomを持つ親のためのフォルダを持つことです。サブモジュールで

<module>../shared</module> 

、あなたが必要とする:同じフォルダ階層上のすべてのモジュールは、あなたが何かのように行う必要がある場合は

<modules> 
    <module>shared</module> 
    <module>common</module> 
    <module>dal</module> 
    <module>logic</module> 
</modules> 

:そのポンポンで あなたは、サブモジュールを定義する必要があります

:同じプロジェクト内の各モジュール間の依存関係を持つために

<parent> 
    <artifactId>Aggregation</artifactId> 
    <groupId>com.mycomm</groupId> 
    <version>3.0.2-SNAPSHOT</version> 
</parent> 

:親のバージョンを設定します

<dependency> 
    <groupId>com.mycomm</groupId> 
    <artifactId>shared</artifactId> 
    <version>${project.version}</version> 
</dependency> 

親のpomを変更する場合は、親のpomのすべてのサブモジュールも変更する必要があります。 あなたはMVN-リリース - プラグイン 例を使用することができます。

mvn release:update-versions -DautoVersionSubmodules=true -DdevelopmentVersion=1.0.0.2-SNAPSHOT 
+0

Okey、IntelliJを使用すると、Mavenモジュールを別のMavenモジュールに組み込むことはできますか? – LuckyLuke

+0

IntelliJでどのように処理されているのか分かりません。 eclipseでは、すべてのモジュールをmavenプロジェクトとしてインポートするだけで、何をすべきかを「知っています」。私はInteliJでも似ていると思います。 –

関連する問題