建立一個Java /基於servlet war文件我上週發佈了一個問題如何我可以建立相關的模塊,其結果是,有人建議我使用Maven的像常春藤或構建工具。我決定使用Maven來嘗試實現我想要做的事情。我的項目基本上建立了一個部署到Tomcat的war文件。模塊本身是最終戰爭文件的一部分。下面是模塊的結構的一例Maven的 - 從多個模塊
模塊1
customerModule
|-webapp
|-jsp
|-customer
|-findCustomer.jsp
|-addNewCustomer.jsp
|-deleteCustomer.jsp
|-src
|-com
|-mycompany
|-customer
|-FindCustomerAction.java
|-AddCustomerAction.java
|-DeleteCustomer.java
單詞數
productModule
|-webapp
|-jsp
|-product
|-productCustomer.jsp
|-addNewProduct.jsp
|-deleteProduct.jsp
|-src
|-com
|-mycompany
|-product
|-FindProductAction.java
|-AddProductAction.java
|-DeleteProduct.java
單詞數
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
正如你可能看到的,上面將所有共同形成一個應用。我想要做的是以每個模塊的工件結束。由於文件類型的混合(jsp,css,java),我不太確定什麼是合適的工件。下圖顯示了我想結束的戰爭文件的結構。
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/classes中 - 爲customerModule最終成爲一個JAR文件的Java文件WEB-INF/lib目錄 - productModule的java文件最終以WEB-INF/lib中的jar文件結尾 - 所有jsps,css最終位於war文件的根目錄
什麼是我應該存儲工件的最佳方式對於存儲庫中的每個模塊?
- 我可以用一個jar文件,但這個不能保存HTML類型的文件(JSP,CSS,JS等)
- 每個模塊(除了commonModule)將包含一個jar文件+ jsp的,css文件。我正在考慮將構建的工件存儲爲zip文件,並在構建MyApp.war以構建war文件時將其解壓縮?
- 我可以存儲每個模塊,即使只有一個有一個web.xml文件戰爭文件的神器?
我怎樣才能實現這個使用Maven
我一直在調查Maven和發現,有可能有一個多模塊項目結構如下
MyApp.pom(父項目) commonModule.pom customer.pom product.pom
如果我拉上ŧ他在存儲庫中的模塊如何從父項目中引用它們並解壓縮以構建最終的war文件?
- 是否有可能自動觸發父項目的構建,如果任何子項目都建?
- 我還沒有想出如何保持每個子項目的版本。如果我建立客戶項目,如何父項目知道有信息庫中的customer.zip(或.jar)的新版本?
假設庫目前包含以下
|-productModule.v.0.1.zip
|-customerModule.v.0.1.zip
|-commonModule.v.0.1.zip
如果我重建中,customerModule然後重建WAR文件購買建築父項目maven是否重建了存儲庫中的所有其他模塊,即使它們沒有cha nged?這個工作到底如何?
是否有任何一個示例項目演示如何實現上述目標?顯示上述示例的任何鏈接或資源將非常有用。
這與「覆蓋」相同嗎? – ziggy 2012-03-06 17:26:10
No. Overlays是一個完全不同的故事。在覆蓋的情況下,你可以做一些不同的戰爭文件的「合併」,看看這裏:http://maven.apache.org/plugins/maven-war-plugin/overlays.html – khmarbaise 2012-03-06 17:48:47
記住,兩者mod-1和mod-2將包含jsp,html,css文件。他們將如何包裝? mod-1.jar是否包含mod-1模塊中的jsp,css文件? – ziggy 2012-03-06 17:56:21