2013-01-08 144 views
3

我有一個三級模塊的項目。讓我們假設它有以下組織...如何使用maven reactor構建模塊及其子模塊?

+-- maven-root 
    +-- maven-module-1 
    | +-- maven-submodule-1-1 
    | +-- maven-submodule-1-2 
    +-- maven-module-2 
    | +-- maven-submodule-2-1 
    | +-- maven-submodule-2-2 
    +-- maven-module-3 
     +-- maven-submodule-3-1 
     +-- maven-submodule-3-2 

此外,我們有以下設置的依賴

  • maven-module-2取決於maven-module-1
  • maven-module-3取決於maven-module-3

在這個結構,並假設maven-module-1及其子模塊的文物s已經在本地存儲庫中可用,是否有一種解決方案使用maven reactor(作爲示例)僅構建maven-module-2及其子模塊?

我已經知道,使用maven反應器,如果我做

mvn clean install -pl :maven-module-2 --also-make-dependant 

它將建立

  1. Maven的模塊2
  2. Maven的子模塊-2-1
  3. maven-submodule-2-2
  4. maven-module-3
  5. maven-submodu LE-3-1
  6. Maven的子模塊-3-2

maven-module-3有在maven-module-2

而且很明顯的相關性,運行

mvn clean install -pl :maven-module-2 --also-make-dependant 

只會建立maven-module-1maven-module-2

那麼,如何使用該項目組織,我可以只構建maven-module-2

+0

我不認爲你可以做到這一點。也許Gradle可以做到,但我沒有使用它。 –

回答

6

使用

mvn clean install -f maven-module-2 -N 

將只建Maven的模塊-2和

mvn clean install -f maven-module-2 

將建設Maven的模塊-2和其子

請小心,-f用於告訴Maven使用另一個POM(或模塊目錄,它取得了pom.xml),而不是當前目錄中的POM。因此,與maven考慮項目中的所有模塊然後僅構建它們的子部分的-pl不同,-f僅構建此項目/模塊/ pom引用的內容。要做到

mvn clean install -f maven-module-2 

酷似

cd maven-module-2; mvn clean install