Gradle生成Javadoc时概览仅展示子包无顶层包如何解决
Javadoc概览页不显示顶层包的解决方案
该问题是Javadoc默认包检测规则导致的:仅包含类文件、无package-info.java的包不会默认展示在概览页,部分场景下Gradle的源集收集逻辑也会过滤掉没有包描述文件的顶层包。可按以下步骤修复:
步骤1:补充顶层包描述文件
在父模块的src/main/java/mypackage/目录下新建package-info.java,内容示例:
/** * 项目顶层包,包含入口类及全局公共定义 */ package mypackage;
步骤2:调整Javadoc任务配置
修改你的genJavadocs任务,显式指定要包含的包范围,避免默认规则过滤:
task genJavadocs(type: Javadoc) { options.source = "8" options.addStringOption("link", "https://docs.oracle.com/javase/8/docs/api/") // 新增:显式指定要包含的根包,覆盖默认包检测逻辑 options.addStringOption("subpackages", "mypackage") Project[] projects = [project(':core'), project] source projects.collect { project -> project.delombok } classpath = files(projects.collect { project -> project.sourceSets.main.compileClasspath }) }
步骤3:适配delombok逻辑(可选,仅delombok后包文件丢失时需要)
delombok默认不会复制package-info.java到输出目录,需手动配置保留:
delombok { doLast { copy { from projects.collect { it.sourceSets.main.java.srcDirs } include "**/package-info.java" into delombok.targetDir.get() } } }
调整完成后重新执行Javadoc生成任务,概览页就会正常展示mypackage顶层包。
内容的提问来源于stack exchange,提问作者Big_Bad_E
相关产品推荐
相关产品推荐

