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:

  1. com.mycompany.myapp
  2. com.mycompany.myapp.package1
  3. com.mycompany.myapp.package1.subpackage1
  4. com.mycompany.myapp.package1.subpackage2
  5. com.mycompany.myapp.package1.subpackage3
  6. com.mycompany.myapp.package1.util
  7. com.mycompany.myapp.package2
  8. com.mycompany.myapp.package2.subpackage4
  9. com.mycompany.myapp.package2.subpackage5
  10. com.mycompany.myapp.package2.util

You could have the following configuration:

  1. <project>
  2. ...
  3. <reporting> (or <build>)
  4. <plugins>
  5. <plugin>
  6. <groupId>org.apache.maven.plugins</groupId>
  7. <artifactId>maven-javadoc-plugin</artifactId>
  8. <version>2.10.4</version>
  9. <configuration>
  10. <groups>
  11. <group>
  12. <title>Example 1 - Group Packages</title>
  13. <!--
  14. Include packages:
  15. com.mycompany.myapp
  16. com.mycompany.myapp.package1
  17. BUT exclude all subpackages
  18. -->
  19. <packages>com.mycompany.myapp:com.mycompany.myapp.package1</packages>
  20. </group>
  21. <group>
  22. <title>Example 2 - Group Packages</title>
  23. <!--
  24. Include packages:
  25. com.mycompany.myapp.package1.subpackage1
  26. com.mycompany.myapp.package1.subpackage2
  27. com.mycompany.myapp.package1.subpackage3
  28. com.mycompany.myapp.package1.util
  29. BUT exclude the root package:
  30. com.mycompany.myapp.package1
  31. -->
  32. <packages>com.mycompany.myapp.package1.*</packages>
  33. </group>
  34. <group>
  35. <title>Example 3 - Group Packages</title>
  36. <!--
  37. Include packages:
  38. com.mycompany.myapp.package1
  39. com.mycompany.myapp.package1.subpackage1
  40. com.mycompany.myapp.package1.subpackage2
  41. com.mycompany.myapp.package1.subpackage3
  42. com.mycompany.myapp.package1.util
  43. -->
  44. <packages>com.mycompany.myapp.package1*</packages>
  45. </group>
  46. <group>
  47. <title>Example 4 - Group Packages</title>
  48. <!--
  49. Include packages:
  50. com.mycompany.myapp.package1
  51. com.mycompany.myapp.package1.subpackage1
  52. com.mycompany.myapp.package1.subpackage2
  53. com.mycompany.myapp.package1.subpackage3
  54. com.mycompany.myapp.package1.util
  55. com.mycompany.myapp.package2
  56. com.mycompany.myapp.package2.subpackage4
  57. com.mycompany.myapp.package2.subpackage5
  58. com.mycompany.myapp.package2.util
  59. -->
  60. <packages>com.mycompany.myapp.package*</packages>
  61. </group>
  62. <group>
  63. <title>Example 5 - Group Packages</title>
  64. <!--
  65. Include packages:
  66. com.mycompany.myapp.package1.subpackage1
  67. com.mycompany.myapp.package1.subpackage2
  68. com.mycompany.myapp.package1.subpackage3
  69. com.mycompany.myapp.package1.util
  70. com.mycompany.myapp.package2.subpackage4
  71. com.mycompany.myapp.package2.subpackage5
  72. com.mycompany.myapp.package2.util
  73. BUT exclude the root packages:
  74. com.mycompany.myapp.package1
  75. com.mycompany.myapp.package2
  76. -->
  77. <packages>com.mycompany.myapp.package1.*:com.mycompany.myapp.package2.*</packages>
  78. </group>
  79. <group>
  80. <title>Example 6 - Group Packages</title>
  81. <!--
  82. Include nothing.
  83. The packages com.mycompany.myapp.package1.util and com.mycompany.myapp.package2.util
  84. will be in "Other Packages" group
  85. -->
  86. <packages>*.util.*</packages>
  87. </group>
  88. </groups>
  89. ...
  90. </configuration>
  91. </plugin>
  92. ...
  93. </plugins>
  94. ...
  95. </reporting> (or </build>)
  96. ...
  97. </project>