当前位置: 首页 > 知识库问答 >
问题:

如何将Gradle项目中的Kotlin字节码版本设置为Java8?

凤柏
2023-03-14

我目前的设置是这样的。

buildscript {
    ext {
        kotlinVersion = '1.0.5-2'
        springBootVersion = '1.4.2.RELEASE'
    }
    repositories { mavenCentral() }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
    }
}

apply plugin: 'kotlin'
apply plugin: 'org.springframework.boot'

tasks.withType(JavaCompile) {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

## I also tried this and it hasn't helped
#sourceCompatibility = 1.8
#targetCompatibility = 1.8

repositories { mavenCentral() }

dependencies {
    compile("org.jetbrains.kotlin:kotlin-stdlib:${kotlinVersion}")
    compile('org.springframework.cloud:spring-cloud-starter-stream-rabbit')
}

dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:Camden.SR2" } }

共有1个答案

郎弘壮
2023-03-14

正如Mark在Debop的回答中指出的那样,您必须配置compileKotlincompileStkotlin。您可以这样做而不重复:

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
  kotlinOptions {
    jvmTarget = "1.8"
  }
}

对于纯Kotlin项目,我认为选项sourceCompatibilitytargetcompatibility不会起任何作用,因此可以删除它们。

参考:https://kotlinlang.org/docs/reference/using-gradle.html#编译器-options

 类似资料:
  • 我对kotlin和gradle是新手,试图建立我的第一个项目: 然后得到错误消息“src\main\kotlin\main.kt:(4,4):Unresolved reference:println”。 我从http://kotlinlang.org/docs/reference/using-gradle.html复制的build.gradle文件 我希望标准库是自动包含的--或者我需要在这里添加

  • 我正在尝试编译简单的Kotlin Gradle脚本。我已经用build创建了一个Idea项目。格拉德尔。kts包含以下内容: 它的灵感来自gradle/kotlin-dsl存储库中的复制示例,它既没有从IDE编译,也没有从终端中的gradlew编译。它给了我这些错误: 也许我缺少某种插件来包含?我该怎么做?

  • 在使用Maven创建一个新的Java11项目时,我在编译时不断得到一个现在著名的错误:“Java error release Version5不受支持”。

  • null 项目包括Kotlin 某些库包括Kotlin 在选项2中,我得到下一个警告: w:类路径中的运行时JAR文件应该具有相同的版本。这些文件位于类路径:/.gradle/caches/transforms-2/files-2.1/ab41544fa06f7b55dec847efe3b9899c/jetified-kotlin-stdlib-jdk7-1.3.71.JAR(版本1.3).gra

  • 问题内容: 我使用以下两个依赖项: 两者必须为同一版本才能正常工作。由于我的其他依赖项使用更高的版本,因此Gradle为每个依赖项使用不同的版本。 我通过运行发现了这一点: 如何强制Gradle为这两个依赖项设置相同的版本? 问题答案: 您的依赖项之一是强制更新番石榴版本。使用以定位库驱逐你的版本。 您遇到的问题是,如果您强迫它使用14.0.1,则另一个库可能无法正常工作。您是否可以仅使用17.0