2014-10-17 45 views
0

我想使用Maven -pl選項來定義將哪些特定模塊包含在反應器中。如果提供了模塊路徑列表,則該選項可用。不幸的是,提供模塊的artifactIds根本不起作用。 Sonatype的「Maven的:完整參考」文件正在使用其中的目錄名稱匹配artifactIds多重例如:定義將在Maven多項目構建中構建的模塊列表

http://books.sonatype.com/mvnref-book/reference/_using_advanced_reactor_options.html

是否有可能使用具有的artifactId -pl選項?

+1

您使用哪個maven版本?你是怎麼稱呼它的?你的pom文件是怎樣的? – khmarbaise 2014-10-17 18:41:20

+0

供參考:[Maven by Example](http://books.sonatype.com/mvnex-book/reference/multimodule-sect-simple-parent.html):_「每個模塊元素對應於simple-父/目錄「._根據他們的artifactIds命名項目目錄不是最好的做法嗎?我不知道有任何子項目,在我們的項目中並非如此,有15個頂級項目和數百個子項目。 – 2014-10-17 19:48:20

+0

並考慮性能。必須解析_every_子目錄中的POM,以檢查是否適用了'artifactId' - 即使大多數不適用於某個構建。將絕對目錄名限制在所需的範圍內要快得多。 – 2014-10-17 19:54:53

回答

3

是的,有可能這樣做。看看mvn --help

-pl,--projects <arg>     Comma-delimited list of specified 
             reactor projects to build instead 
             of all projects. A project can be 
             specified by [groupId]:artifactId 
             or by its relative path. 

請特別注意,一個artifactId沒有前導groupId仍然擁有領先的冒號。

因此,例如在該artifactId相同目錄名的情況下,這三條線將全部指向同一個模塊中的Maven:

  • mvn -pl maven-core
  • mvn -pl :maven-core
  • mvn -pl org.apache.maven:maven-core