家族について考えるパパのブログ

普段の生活をいかに快適に過ごすかを考えて実践をしていくブログ

どうやって複数のモジュールがあるプロジェクトをビルドするかについて

こんにちは。

 

「どうやって複数のモジュールがあるプロジェクトをビルドするか」について学んだのでそれについて、メモしておきます。(まだ自分の中では消化しきれてないです。。)

この話の中では、大きなプロジェクトになっているてユーザーインターフェースを提供するようなwebアプリケーション(WAR)と各サービス層のコードを持っているサービスプロジェクト(JAR)、そして永続的なプロジェクトがあるとします。

vn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-parent -Dversion=1.0.0-SNAPSHOT -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=pom-root

これをすると、pom.xmlファイルが作成されます。
親プロジェクトのpackagingのtypeにはpomが入ります。

そして、親プロジェクトの中にwebプロジェクトを作成します。

mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-web -Dversion=1.0.0-SNAPSHOT -Dpackage=war -DarchetypeArtifactId=maven-archetype-webapp

そして次に、serviceプロジェクトを作成します。
mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-service -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

この maven-archetype-quickstartをつけるとJARプロジェクトを生成するので、packageパラメーターを指定していません。
また、 -DinteractiveMode=false を使用すると対話モードで起動されない。

また、最後にJavaプロジェクトを作成します。
mvn archetype:generate -DgroupId=com.appress.gswmbook -DartifactId=gswm-repository -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

これらのコマンドを実行して、プロジェクトの作成を行うと

親POMには、子moduleが登録されています。
<modules>
<module>gswm-web</module>
<module>gswm-service</module>
<module>gswm-repository</module>
</modules>
こんな感じで。↑

この状態で、maven packageコマンドを入力するとbuildをします。

 

 

読んでいただきありがとうございました。