问题描述
假设我有以下包结构:
当我生成 javadoc 时,我会在 index.html
下得到以下内容:
我觉得不方便有两个原因:
- 您无法真正按包探索类,因为所有列表都是平面的(这不像导航文件夹树)
-
package-info.java
仅出现在com.company.framework
包级别(不包含类),其他两个实际包含类的子包的描述为空。
我想以某种方式“聚合”(或折叠?)包,以便我只能得到 com.company.framework
,然后扩展它我只能得到 a
和 b
。
使用 Javadoc 可以实现吗?
如果需要,我的设置:
Maven 插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
<overview>${basedir}/javadoc/overview.html</overview>
</configuration>
<executions>
<execution>
<id>aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>
<reportOutputDirectory>${basedir}/framework-doc/</reportOutputDirectory>
</configuration>
</execution>
</executions>
</plugin>
我用来构建 javadoc 的命令:
mvn javadoc:aggregate
解决方法
最后,寻找正确的地方是 javadoc maven 插件的分组包功能。
官方文档:here
示例:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
<overview>${basedir}/javadoc/overview.html</overview>
<groups>
<group>
<title>Package A</title>
<packages>com.company.framework.a*</packages>
</group>
</groups>
</configuration>
<executions>
<execution>
<id>aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>
<reportOutputDirectory>${basedir}/framework-doc/</reportOutputDirectory>
</configuration>
</execution>
</executions>
</plugin>