Gradle javadoc 搜索重定向到“/undefined/..” URL

Gradle javadoc Search redirects to “/undefined/..” URL

我正在使用 Java 11 和 gradle 为不使用以下配置的模块的项目生成 javadoc。

文档已正确生成,但导航到搜索结果时会生成未找到的文件,而不是预期的页面。在包和class名称之前的URL中有一个额外的"undefined/"(例如“.../doc/undefined/package/Class.html”)。

有一个 similar question for javadoc with Maven,但我看不到如何在 gradle 中添加 --no-module-directories 选项。

task allJavadoc (type: Javadoc, description: 'Generate javadoc from all projects', group: 'Documentation') {
    destinationDir = file("$projectDir/doc")
    title = "Title"
    maxMemory = "2048m"
    failOnError true
    options.author false
    options.version true
    options.use true
    options.links "https://docs.oracle.com/en/java/javase/11/docs/api/"
    options.breakIterator true

    subprojects.each { proj ->
        proj.tasks.withType(Javadoc).each { javadocTask ->
            classpath += javadocTask.classpath
            excludes += javadocTask.excludes
            includes += "**/*.java"
        }
    }
}

您需要添加一个删除前导连字符的布尔选项:

options.addBooleanOption "-no-module-directories", true

或者,如果您没有定义自定义任务:

javadoc {
  doFirst {
    options.addBooleanOption('-no-module-directories', true)
  }
}

改编自