先週、私は依存モジュールを構築する方法について質問を出しました。その結果、MavenやIvyのようなビルドツールを使用することが推奨されました。私はMavenを使って私がやりたいことを達成しようと決めました。私のプロジェクトは基本的にTomcatに配備された単一のwarファイルを作成します。モジュール自体は最終的なwarファイルの一部です。ここでは、モジュールの構成例は、Maven - 複数のモジュールから単一のjava/servletベースのwarファイルを構築する
モジュール1
customerModule
|-webapp
|-jsp
|-customer
|-findCustomer.jsp
|-addNewCustomer.jsp
|-deleteCustomer.jsp
|-src
|-com
|-mycompany
|-customer
|-FindCustomerAction.java
|-AddCustomerAction.java
|-DeleteCustomer.java
モジュール2
productModule
|-webapp
|-jsp
|-product
|-productCustomer.jsp
|-addNewProduct.jsp
|-deleteProduct.jsp
|-src
|-com
|-mycompany
|-product
|-FindProductAction.java
|-AddProductAction.java
|-DeleteProduct.java
モジュール3
commonModule
|-webapp
|-css
|-style.css
|-jsp
|-templates
|-coreTemplate.jsp
|-src
com
|-mycomany
|-common
|-Logger.java
|-Access.java
|-META-INF
|-MANIFEST.MF
|-context.xml
|-WEB-INF
|-lib
|-oraclejdbc.lib
|-log4j.lib
|-common.lib
|-struts-config.xml
|-tiles-def.xml
|-web.xml
あなたはおそらく見ることができるように、上記のすべてをまとめて1を形成しています応用。私がしたいのは、各モジュールのアーティファクトで終わることです。ファイルタイプ(jsp、css、java)が混在しているため、適切なアーティファクトが何であるか分かりません。下の図は、私が最終的に望むwarファイルの構造を示しています。
MyApp.war
|-webapp
|-css
|-style.css
|-jsp
|-customer
|-findCustomer.jsp
|-addNewCustomer.jsp
|-deleteCustomer.jsp
|-product
|-productCustomer.jsp
|-addNewProduct.jsp
|-deleteProduct.jsp
|-templates
|-coreTemplate.jsp
|-META-INF
|-MANIFEST.MF
|-context.xml
|-WEB-INF
|-lib
|-oraclejdbc.lib
|-log4j.lib
|-common.lib
|-customerModule.jar
|-productModule.jar
|-classes
|-com
|-mycomany
|-common
|-Logger.class
|-Access.class
|-struts-config.xml
|-tiles-def.xml
|-web.xml
ノート のカップル - commonModuleでのjavaファイルが構築され、WEB-INF /クラス で終わるされている - customerModule用のJavaファイルは、WEB-INF/libに 内のjarファイルとして終わります - productModuleのjavaファイルは、WEB-INF/libのjarファイルとして終了する - すべてのjsps、cssはwarファイルのルートになります。
アーティファクトを保存する最良の方法は何ですかリポジトリ内のモジュールごとに?
- jarファイル+ JSP、CSSファイルが含まれています(commonModuleを除く)各モジュールを、私はjarファイルを使用することができますが、これは、HTMLタイプのファイル(JSP、CSS、JSなど)を保持カント
- 。私は、ビルドされたアーティファクトをzipファイルとして保存し、MyApp.warがwarファイルをビルドするためにビルドされるときにそれを抽出することを考えていますか?
- web.xmlファイルが1つしかないのに、各モジュールのアーティファクトをwarファイルとして保存できますか?私はMavenの
私はMavenを調査し、次の構造
MyApp.pomでマルチモジュールプロジェクトを持つことが可能であるかもしれないことが判明しているが(使用してこれを実装するにはどうすればよい
親プロジェクト) commonModule.pom customer.pom product.pom
私はトンをzip形式で圧縮した場合彼はリポジトリ内のモジュールをどのように親プロジェクトから参照し、それらを解凍して最終的なwarファイルを作成しますか?
- 子プロジェクトのいずれかがビルドされている場合、親プロジェクトのビルドを自動的にトリガーすることはできますか?
- 私はそれぞれの子プロジェクトのバージョンを維持する方法を理解していません。私が顧客プロジェクトをビルドすると、親プロジェクトはリポジトリに新しいバージョンのcustomer.zip(または.jar)があることをどのように知っていますか?私は、customerModuleを再構築して、warファイルは、親プロジェクトをビルド購入再構築する場合、リポジトリを想定し
は現在、次の
|-productModule.v.0.1.zip
|-customerModule.v.0.1.zip
|-commonModule.v.0.1.zip
が含まれています、mavenはchaを持っていなくてもリポジトリ内の他のすべてのモジュールを再構築しますnged?これはどのくらい正確に機能しますか?
上記の達成方法を示すサンプルプロジェクトはどこにありますか?上記の例を示すリンクやリソースは非常に便利です。
これは「オーバーレイ」と同じですか? – ziggy
いいえ、オーバーレイは全く別の話です。オーバーレイの場合は、さまざまなwarファイルの "マージ"の一種を行います:http://maven.apache.org/plugins/maven-war-plugin/overlays.html – khmarbaise
mod-1とmod-2にはjsp、html、cssファイルが含まれます。彼らはどのようにパッケージ化されますか? mod-1.jarにはmod-1モジュールのjsp、cssファイルが含まれていますか? – ziggy