Aggregating Javadocs For Multi-Projects

For example, consider the following directory structure:


Project
 |-- pom.xml
 |-- Module1
 | `-- pom.xml
 | `-- Module 2
 | `-- pom.xml
 | `-- Module 3
 | `-- pom.xml
 |-- Module4
 | `-- pom.xml
 `-- Module5
 `-- pom.xml

Since 3.1.0 the aggregate has changed a little bit. It'll generate aggregated reports at every level. To get only an aggregated project at root level, you need to configure the pom like:

<project>
 ...
 <reporting>
 <plugins>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-javadoc-plugin</artifactId>
 <version>3.12.0</version>
 <reportSets>
 <reportSet>
 <id>aggregate</id>
 <inherited>false</inherited>
 <reports>
 <report>aggregate</report>
 </reports>
 </reportSet>
 <reportSet>
 <id>default</id>
 <reports>
 <report>javadoc</report>
 </reports>
 </reportSet>
 </reportSets>
 </plugin>
 </plugins>
 ...
 </reporting>
 ...
</project>

Using The aggregate Goals

The <aggregate/> parameter doesn't include generate source directories defined using the build-helper:add-source. In this case, you need to use the aggregate goal and test-aggregate goals. You could define these goals in the <build/> element (using the <execution/> tag) or <reporting/> element (using the <reportSet/> tag) as shown below. For more information, refer to the Selective Javadocs Reports page.

<project>
 ...
 <build>
 <plugins>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-javadoc-plugin</artifactId>
 <version>3.12.0</version>
 <configuration>
 <!-- Default configuration for all reports -->
 ...
 </configuration>
 <executions>
 <execution>
 <id>aggregate</id>
 <goals>
 <goal>aggregate</goal>
 </goals>
 <phase>site</phase>
 <configuration>
 <!-- Specific configuration for the aggregate report -->
 ...
 </configuration>
 </execution>
 ...
 </executions>
 </plugin>
 ...
 </plugins>
 </build>
 ...
</project>

<project>
 ...
 <reporting>
 <plugins>
 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-javadoc-plugin</artifactId>
 <version>3.12.0</version>
 <configuration>
 <!-- Default configuration for all reports -->
 ...
 </configuration>
 <reportSets>
 <reportSet>
 <id>non-aggregate</id>
 <configuration>
 <!-- Specific configuration for the non aggregate report -->
 ...
 </configuration>
 <reports>
 <report>javadoc</report>
 </reports>
 </reportSet>
 <reportSet>
 <id>aggregate</id>
 <configuration>
 <!-- Specific configuration for the aggregate report -->
 ...
 </configuration>
 <reports>
 <report>aggregate</report>
 </reports>
 </reportSet>
 ...
 </reportSets>
 </plugin>
 ...
 </plugins>
 </reporting>
 ...
</project>

Aggregating Javadocs For Modularized projects

Since Java 9 it is possible to add module descriptors to your projects, which can have an impact on the generated reports. Be aware that is not possible to have a mixture of named and unnamed modules. Ideally every Maven module has a Java module descriptor, but this is not always possible, e.g. due to split packages of dependencies. In such case you must have a jar containing a META-INF/MANIFEST.MF with an entry for the Automatic-Module-Name. In other words: ensure to call package javadoc:aggregate, because the manifest file is only being read from jar, not from directory.

 <plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-jar-plugin</artifactId>
 <configuration>
 <archive>
 <manifestEntries>
 <Automatic-Module-Name>com.foo.bar</Automatic-Module-Name>
 </manifestEntries>
 </archive>
 </configuration>
 </plugin>

Occasionally, automatic modules need to import named modules. For example,

 error: package org.w3c.dom is not visible
 (package org.w3c.dom is declared in module java.xml, but module foobar does not read it)

can be solved by adding the relevant --add-modules options to the plugin configuration:

 <additionalOptions>
 <option>--add-modules</option>
 <option>java.xml</option>
 </additionalOptions>

The Javadoc plugin contains several aggregate goals to be use with an aggregator project. Here is the full list of all aggregate goals:


AltStyle によって変換されたページ (->オリジナル) /