どうやって複数のモジュールがあるプロジェクトをビルドするかについて
こんにちは。
「どうやって複数のモジュールがあるプロジェクトをビルドするか」について学んだのでそれについて、メモしておきます。(まだ自分の中では消化しきれてないです。。)
この話の中では、大きなプロジェクトになっているてユーザーインターフェースを提供するような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をします。
読んでいただきありがとうございました。