Javadoc和--enable-preview

时间:2019-12-26 07:50:55

标签: gradle javadoc java-12

我正在使用带有预览功能的Gradle 6.0.1和JDK12。 具有以下配置,可以进行编译,运行和测试:

tasks.withType(JavaCompile) {
    options.compilerArgs += "--enable-preview"
}

tasks.withType(Test) {
    jvmArgs += "--enable-preview"
}

tasks.withType(JavaExec) {
    jvmArgs += '--enable-preview'
}

对于除我定义如下的javadoc生成之外的所有代码都适用:

task generateJavadocs(type: Javadoc) {
    source = sourceSets.main.allJava
    options.jFlags("--enable-preview")
}

运行gradle generateJavadocs时,我收到新开关表达式的编译错误。有人让它与Javadoc兼容吗?

2 个答案:

答案 0 :(得分:3)

我在使用JDK 14(和Gradle 6.3)的预览功能时遇到了同样的问题。这对我有用:

javadoc.options {
    addBooleanOption('-enable-preview', true)
    addStringOption('-release', '14')
}

根据您的情况,尝试:

task generateJavadocs(type: Javadoc) {
    options {
        addBooleanOption('-enable-preview', true)
        addStringOption('-release', '12')
    }
}

答案 1 :(得分:1)

此答案增强了Manfred的答案,适用于尝试使用gradle的kotlin api设置javadoc args的任何人。我花了一段时间才弄清楚对addStringOption和addBooleanOption的访问需要强制转换。

tasks.withType<Javadoc> {
    val javadocOptions = options as CoreJavadocOptions

    javadocOptions.addStringOption("source", "14")
    javadocOptions.addBooleanOption("-enable-preview", true)
}