2015-10-05 28 views
2

我有一個Maven多模塊項目是這樣的:如何在Maven多模塊項目中從Javadoc生成中排除單個模塊?

foo-parent 
    foo-module 
    foo-module-new 
    foo-other-module1 
    foo-other-module2 
    pom.xml 

而在富父母打電話mvn javadoc:aggregate的時候,我想排除Javadoc生成模塊富模塊

由於foo-module和foo-module-new具有相同的包名稱,所以在我的情況下,按參數excludePackageNames包名排除不起作用。

+0

看完了[ (http://comments.gmane.org/gmane.comp.jakarta.turbine.maven.user/134446),似乎唯一的方法就是使用配置文件,如當前的答案。 – Tunaki

回答

3

啓動以下只爲foo-other-module1foo-other-module2模塊生成的javadoc(注:始終包括聚合器模塊,在這種情況下foo-parent):

mvn javadoc:aggregate -pl :foo-parent,:foo-other-module1,:foo-other-module2 

由於Maven的3.2.1,你也可以從你的反應堆中排除模塊,所以上面簡化到

mvn javadoc:aggregate -pl !foo-module 
+0

我認爲你是正確的:在命令行上指定模塊上的項目是當前最好的選擇。儘管我寧願將這個邏輯放在pom.xml中。 –

+1

還要注意[排除是可能的,因爲Maven 3.2.1](http://stackoverflow.com/questions/13266470/how-do-i-exclude-certain-modules-from-a-maven-build-using-the -commandline/22783633#22783633)它似乎在模塊名稱前沒有冒號的情況下工作。 –

+0

如果您將其更改爲排除而非包含,我會接受您的答案。我真的覺得在這種情況下這是更好的選擇。 –

0
Use maven profil : 

1. add in your pom : 

<profiles> 
    <profile> 
    <id>javadoc</id> 
    <modules> 
     <module>module_include_javadoc1</module> 
     <module>module_include_javadoc2</module> 
    </modules>   
    </profile> 
    </profiles> 

2. 
mvn javadoc:aggregate -Pjavadoc 
+0

在這種簡單的形式中,如果在父pom的頂部指定了所有模塊,則答案將不起作用。正常的,非Javadoc版本需要這一點。一般來說,我認爲配置文件的解決方案太亂了。沒有簡單的方法從配置文件中排除模塊。 –

+0

下面是關於[如何從Maven reactor構建中排除模塊]的更詳細的答案(http://stackoverflow.com/questions/5539348/how-to-exclude-a-module-from-a-maven-reactor-建立/ 11429945#11429945)。 –