有什么区别
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
Run Code Online (Sandbox Code Playgroud)
和
compileKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
Run Code Online (Sandbox Code Playgroud)
他们会在 gradle/Kotlin 库中获得相同的最终结果吗?jvmTarget 用于设置要使用的标准库版本,我明白。
kotlinOptions.jvmTarget用于指定 JVM 标准库的版本,用作编译特定于 JVM 的 Kotlin 源集的依赖项(请参阅https://kotlinlang.org/docs/gradle-configure-project.html#dependency-on-the -标准库和-bootclasspathjavac 选项)。
java.sourceCompatibility确保 .java 文件使用指定版本的 Java 编程语言语法
java.targetCompatibility确保生成的 .class 文件与指定的 JVM 兼容
因此,这些选项并不等同。
无论如何,定义交叉编译参数的现代方式(自 Gradle 6.7+ 和 Kotlin 1.5.30+ 起)是工具链:
kotlin {
jvmToolchain {
(this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(11))
}
}
// Or its eqivalent:
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |