gpt4 book ai didi

kotlin - 使用 Kotlin 和 Gradle 定位特定的 JVM

转载 作者:行者123 更新时间:2023-12-05 03:37:29 25 4
gpt4 key购买 nike

有什么区别

java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}

compileKotlin {
kotlinOptions {
jvmTarget = "11"
}
}

它们是否会在 gradle/Kotlin 库中实现相同的最终结果? jvmTarget 用于设置要使用的标准库版本,我明白了。

最佳答案

kotlinOptions.jvmTarget 用于指定 JVM 标准库的版本,用作编译 JVM 特定的 Kotlin 源集的依赖项(参见 https://kotlinlang.org/docs/gradle.html#dependency-on-the-standard-library-bootclasspath javac 的选项).

java.sourceCompatibility 确保 .java 文件使用指定版本的 Java 编程语言语法

java.targetCompatibility 确保生成的 .class 文件与指定的 JVM 兼容

因此,这些选项并不等同。

无论如何,定义交叉编译参数的现代(自 Gradle 6.7+ 和 Kotlin 1.5.30+)方式是 toolchain :

kotlin {
jvmToolchain {
(this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(11))
}
}

// Or its eqivalent:

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
}

关于kotlin - 使用 Kotlin 和 Gradle 定位特定的 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69271726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com