2012-03-23 40 views
3

我的問題以前已經被問到過,我知道,但我認爲我正在嘗試做一些稍微不同的事情,而現有的答案並不恰當。從本質上講,我確實希望在Eclipse中有多個項目(最好)構建到一個最終的WAR文件中。理想的情況是這樣的:從Maven構建多個模塊項目到一個war文件中

root - pom.xml 
|___ java-app 
|___ web-service-v1 
|___ web-service-v2 
|___ web-service-v3 
|___ rest-service 
|___ batch-service 

想象Java應用程序作爲實際應用中,並且每個另外的部件作爲運行爲Java應用程序本身解耦視圖層。最終,Java應用程序將運行在一個tomcat實例中,不同的模塊提供他們的服務。我希望所有不同的模塊也可以在同一個Spring容器中運行。

我不知道在Maven模塊中運行是這樣做的最好方法,但我更希望每個組件都在最終構建在一起的單獨Eclipse項目中。

任何人都可以提供任何關於如何使用Maven構建它的建議嗎?

+0

maven中的模塊是一個相當鬆散的構造;他們可以像你喜歡的那樣相關或不相關。你肯定可以做你想要做的事情。你有什麼保留? – 2012-03-23 19:28:14

+0

我只是對如何設置不同的pom.xml文件感到困惑。父項目必須構建爲「pom」,但對於我來說,將父項目設置爲WAR,並配置我的配置文件和公共內容是非常重要的。例如,多個模塊需要一個我通過Spring配置的JMX控制檯。我假設父項目將需要包含這個,以便各個模塊可以保持分離。 – Mouscellaneous 2012-03-23 19:45:06

+0

我也想能夠配置哪些eclipse項目包含在構建中,也許作爲一個目標,如果可能的話。 – Mouscellaneous 2012-03-23 19:46:49

回答

7

只是做一個獨立的戰爭模塊:

root - pom.xml (packaging: pom!!!) 
|___ java-app 
|___ web-service-v1 
.. 
+--- mod-war (pom.xml) 

,把你想添加到war文件到聚甲醛模塊的依賴關係,就是這樣。

+0

我實際上最終做了類似的事情,我有一個項目構建爲一個WAR,依賴於我的其他項目,然後我將所有配置WAR項目中的Spring和tomcat。結束了很好的工作。我可能會切換到這個地方,WAR項目只有一個依賴項,其中包含不同的模塊。 – Mouscellaneous 2012-03-26 19:11:11

2

Maven的主要想法是每個模塊必須產生一個構建工件(例如jar或war文件)。父pom通常負責全局配置和依賴管理,並負責適當的模塊編排。如果您的最終結果需要是WAR文件,則列表中的最後一個模塊將是Web應用程序。其他模塊可以提供戰爭文件所依賴的類。

有更復雜的構建結構,但超過一個應該足夠你。

+0

實際上有些棘手的是,有一些配置需要跨越每個模塊,所以我不認爲我可以使用POM類型的項目作爲父項。 – Mouscellaneous 2012-03-23 20:24:38

+0

@很重要 - 我認爲你可以做你需要做的事情。查看以下鏈接,並嘗試真正獲得項目繼承和項目聚合之間的差異。這對我來說完全不同。我認爲一旦這有意義,你可能會看到maven如何處理你想要的配置。 HTTP://maven.apache。org/guides/introduction/introduction-to-the-pom.html – 2012-03-24 02:22:03

1

這有些過時,但希望這個額外的信息可以幫助某人。

@Mouscellaneous在每個模塊中保留Spring配置並從web.xml引用它們的示例可以找到here in the Sonatype book。我想這就是你要找的。

PS:對不起,我不得不添加此作爲一個新的答案。我想我沒有足夠的積分來回應其他答案。

相關問題