如何让Gradle的javadoc任务包含生成的源代码?
解决Gradle Javadoc无法识别生成源码链接的问题
你的问题根源在于:Gradle的javadoc任务默认只会扫描主源码集(比如src/main/java)的文件,不会自动包含注解处理器生成的build/generated/annotationProcessor/java/main目录下的源码,所以无法识别MyEntity_这类生成类的链接引用。
可以通过以下两种方式配置解决:
方式一:将生成目录加入源码集(推荐)
把生成的源码目录添加到main源码集里,这样javadoc会自动包含这些文件,同时也能让IDE的相关任务更一致。
Groovy DSL(build.gradle)
sourceSets { main { java { srcDirs += file("build/generated/annotationProcessor/java/main") } } }
Kotlin DSL(build.gradle.kts)
sourceSets { main { java { srcDirs("build/generated/annotationProcessor/java/main") } } }
如果需要处理test目录下的生成源码,对应修改sourceSets.test.java.srcDirs即可。
方式二:直接配置Javadoc任务
如果不想修改源码集,也可以直接给javadoc任务指定额外的源目录和类路径:
Groovy DSL
javadoc { // 添加生成的源码目录 source += fileTree(dir: "build/generated/annotationProcessor/java/main") // 确保类路径包含生成类的编译输出 classpath += sourceSets.main.output }
Kotlin DSL
tasks.javadoc { source += fileTree("build/generated/annotationProcessor/java/main") classpath += sourceSets.main.get().output }
配置完成后,重新执行gradle javadoc任务,就能正常识别指向生成源码的@link链接了。
内容的提问来源于stack exchange,提问作者Jin Kwon
相关产品推荐
相关产品推荐

