0

我有一个用 gradle 构建的基于 scala 的项目,它包含 java 和 scala 代码。我们正在从 oracle jdk 8 升级到 OpenJDK11。我们正在通过向编译器添加发布标志来升级与 JDK8 兼容的二进制文件。我为java文件实现了这一点

if(JavaVersion.current() > JavaVersion.VERSION_1_9) {
    subprojects {
        tasks.withType(JavaCompile) {
            options.compilerArgs += ["--release", "8"]
        }
        tasks.withType(ScalaCompile) {
            options.compilerArgs += ["--release", "8"]
        }
    }
}

在 build.gradle 中。这很好用,即构建似乎添加了发布标志,为了测试这一点,我向 java 类添加了 JDK 11 特定的更改。即在java类中使用String.repeat并且编译器抛出错误但是如果我将它添加到scala类中它编译而不报告repeat()不是可用方法的错误。我错过了什么将发布标志添加到 scala 编译没有任何意义,或者我该如何实现这一点?目的是让二进制文件在 JDK 8 或 JDK11 上运行,我们现在可以在使用基于 JDK11 的新功能上妥协。所以我需要确保没有其他开发人员添加特定于 jdk11 的代码,以便我们最终解决运行时问题。

4

0 回答 0