2010-10-18 30 views
1

我有以下來源佈局:Multi-webapp Maven 2項目 - 如何構建單個Web應用程序?

. 
├── pom.xml 
├── modules (has pom) 
│ ├── module1 (has pom) 
│ └── module2 (has pom) 
│ └── moduleN (has pom) 
└── webapp1 (has pom) 
└── webapp2 (has pom) 

webapp1和webapp2的依賴於所有的模塊(模塊是DAO,服務等)。 目前,我建立了一切從根和mvn package給我兩個WAR文件。

如何構建僅webapp1或webapp2?

如果我進入webapp1並運行mvn package它說它無法下載moduleX.jar(這是一個乾淨的存儲庫)。當然,Maven應該能夠推斷出這些模塊需要首先作爲依賴關係來構建?

回答

1

如何僅構建webapp1或webapp2?

使用"advanced reactor options"。從根:

mvn install -pl webapp1 -am 

這告訴Maven安裝webapp1和在其webapp1取決於(以正確的順序)的項目。

幫助(mvn -h)記錄了這些命令是這樣的:

 
-pl, --projects 
     Build specified reactor projects instead of all projects 
-am, --also-make 
     If project list is specified, also build projects required by the list 

請注意,您需要調用 install,依賴關係總是通過本地倉庫解決(所以你需要 install它們)。 我錯了,打電話package確實有效(我不知道如何/爲什麼,但它確實)。

+0

謝謝!我經常忽略命令行選項。 – opyate 2010-10-18 13:17:13

+0

Pascal,如果我從我的本地(rm -rf〜/ .m2/repository/com/mycompany)清除我的軟件包,然後運行mvn -pl webapp1 -am軟件包,那麼回購保持不變,即我的JAR文件aren' t複製到本地。這實際上是一個很好的副作用,但這是否反過來說你要「安裝」? – opyate 2010-10-18 13:34:51

+0

*我從我的本地(...)清除我的軟件包,然後運行mvn -pl webapp1 -am軟件包,然後回購保持不變*是的,'package'不會'安裝到本地存儲庫(但爲什麼你是否在與本地存儲庫「搞砸」?)。 *這實際上是一個很好的副作用,但是這是否與你說的「安裝」相反?*哇,我只是重複檢查了一個寵物項目,你說得對,只調用'package'。我不知道這一點(我不明白爲什麼/它是如何工作的)。 – 2010-10-18 14:20:39

相關問題