2015-10-05 26 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)。 –