如何从 Maven 多模块项目中的 Javadoc 生成中排除单个模块?

How to exclude a single module from Javadoc generation in a Maven multi module project?

我有一个这样的 Maven 多模块项目:

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

并且在 foo-parent 中调用 mvn javadoc:aggregate 时,我想从 Javadoc 生成中排除模块 foo-module

使用参数 excludePackageNames 按包名称排除在我的情况下不起作用,因为 foo-module 和 foo-module-new 具有相同的包名称。

使用 maven 配置文件。

  1. 添加你的 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
    

启动以下命令仅为 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'