我的设置:
- Android Gradle插件3.6.1
- 6.2.1级
- JDK 11
我有一个使用JDK8构建Javadoc的工作配置。它看起来是这样的(基于https://www.stkent.com/2016/02/05/adventures-with-javadocs-part-2.html):
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
from javadoc.destinationDir
archiveClassifier.set('javadoc')
}
正如文章中所评论的,有大量关于类等的警告。当使用JDK11时,这些警告现在都是错误。即使忽略这些错误,我也可以看到javadoc没有正确生成。以前,它包含了所有包/类的HTML,但JDK 11只有一个包含MANIFEST.MF文件的元数据文件夹(包含:"MANIFEST Version:1.0"(
这种行为改变的原因可能是什么
更新:根据评论中的请求,我添加了一个错误类型的示例(正如我所提到的,这种类型的错误在参考文章中,但在JDK8中它们只是警告(:
symbol: class NonNull
location: package androidx.annotation
/builds/myproject/src/main/java/com/mycompany/package/Bar.java:7: error: package com.mycompany.package does not exist
import com.mycompany.package.Foo;
FAILURE: Build failed with an exception.
在javadoc中添加--ignore-source-errors
选项就解决了这个问题。
为此,您应该在javadoc任务中添加以下行:
options.addBooleanOption('-ignore-source-errors', true)