Grouping Packages
To set a grouping for different packages, use the <groups/> parameter as shown below. Each group will be consist of a <title/> and a <packages/> (as String). The <packages/> element supports wildcard (*) to allow subpackages. If more than one package is to be included, each package name must be separated colon (:) separated (similar to the Javadoc Tool).
For instance, with the following packages:
com.mycompany.myapp com.mycompany.myapp.package1 com.mycompany.myapp.package1.subpackage1 com.mycompany.myapp.package1.subpackage2 com.mycompany.myapp.package1.subpackage3 com.mycompany.myapp.package1.util com.mycompany.myapp.package2 com.mycompany.myapp.package2.subpackage4 com.mycompany.myapp.package2.subpackage5 com.mycompany.myapp.package2.util
You could have the following configuration:
<project> ... <reporting> (or <build>) <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.10.0</version> <configuration> <groups> <group> <title>Example 1 - Group Packages</title> <!-- Include packages: com.mycompany.myapp com.mycompany.myapp.package1 BUT exclude all subpackages --> <packages>com.mycompany.myapp:com.mycompany.myapp.package1</packages> </group> <group> <title>Example 2 - Group Packages</title> <!-- Include packages: com.mycompany.myapp.package1.subpackage1 com.mycompany.myapp.package1.subpackage2 com.mycompany.myapp.package1.subpackage3 com.mycompany.myapp.package1.util BUT exclude the root package: com.mycompany.myapp.package1 --> <packages>com.mycompany.myapp.package1.*</packages> </group> <group> <title>Example 3 - Group Packages</title> <!-- Include packages: com.mycompany.myapp.package1 com.mycompany.myapp.package1.subpackage1 com.mycompany.myapp.package1.subpackage2 com.mycompany.myapp.package1.subpackage3 com.mycompany.myapp.package1.util --> <packages>com.mycompany.myapp.package1*</packages> </group> <group> <title>Example 4 - Group Packages</title> <!-- Include packages: com.mycompany.myapp.package1 com.mycompany.myapp.package1.subpackage1 com.mycompany.myapp.package1.subpackage2 com.mycompany.myapp.package1.subpackage3 com.mycompany.myapp.package1.util com.mycompany.myapp.package2 com.mycompany.myapp.package2.subpackage4 com.mycompany.myapp.package2.subpackage5 com.mycompany.myapp.package2.util --> <packages>com.mycompany.myapp.package*</packages> </group> <group> <title>Example 5 - Group Packages</title> <!-- Include packages: com.mycompany.myapp.package1.subpackage1 com.mycompany.myapp.package1.subpackage2 com.mycompany.myapp.package1.subpackage3 com.mycompany.myapp.package1.util com.mycompany.myapp.package2.subpackage4 com.mycompany.myapp.package2.subpackage5 com.mycompany.myapp.package2.util BUT exclude the root packages: com.mycompany.myapp.package1 com.mycompany.myapp.package2 --> <packages>com.mycompany.myapp.package1.*:com.mycompany.myapp.package2.*</packages> </group> <group> <title>Example 6 - Group Packages</title> <!-- Include nothing. The packages com.mycompany.myapp.package1.util and com.mycompany.myapp.package2.util will be in "Other Packages" group --> <packages>*.util.*</packages> </group> </groups> ... </configuration> </plugin> ... </plugins> ... </reporting> (or </build>) ... </project>