For example, consider the following directory structure:
- Project
- |-- pom.xml
- |-- Module1
- | `-- pom.xml
- |-- Module2
- | `-- pom.xml
- `-- Module3
- `-- pom.xml
Note: <aggregate/> parameter is deprecated since 2.5. Please use the aggregate goal instead of.
The <aggregate/> parameter can be used to generate javadocs for multi-module projects. It gives the option to generate one javadoc report for the entire project (all modules) or generate one javadoc report for each module.
When you execute javadoc:javadoc from Project directory with aggregate set to true, a javadoc report will be created in the target directory of Project with all the javadocs of Project's modules included. If aggregate is set to false (default), a javadoc report for Module1 will be generated in the target directory of Module1, a javadoc report for Module2 will be generated in the target directory of Module2, and a javadoc report for Module3 will be generated in the target directory of Module3.
- <project>
- ...
- <reporting> (or <build>)
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>2.10.4</version>
- <configuration>
- ...
- <aggregate>true</aggregate>
- ...
- </configuration>
- </plugin>
- </plugins>
- ...
- </reporting> (or </build>)
- ...
- </project>
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>2.10.4</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>2.10.4</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>
The Javadoc plugin contains several aggregate goals to be use with an aggregator project. Here is the full list of all aggregate goals: