You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gradle和Maven中配置Kotlin编译为Java 1.8?Gradle配置是否可行?

如何在Gradle与Maven中配置Kotlin编译为Java 1.8?

没问题,我来帮你搞定这个配置,同时也会验证你给出的Gradle配置是否可行。

Gradle 配置

你给出的配置是否可行?

完全可行!这段配置确实能让Kotlin代码编译为Java 1.8兼容的字节码:

compileKotlin.sourceCompatibility = JavaVersion.VERSION_1_8
compileKotlin.targetCompatibility = JavaVersion.VERSION_1_8
compileKotlin.kotlinOptions.jvmTarget = "1.8"

不过要注意,sourceCompatibility和targetCompatibility主要是针对Java代码编译的配置,而kotlinOptions.jvmTarget才是专门控制Kotlin编译输出的JVM目标版本。如果你的项目里没有Java代码,其实只需要设置kotlinOptions.jvmTarget = "1.8"就够了,但加上前两行也没坏处,能确保整个项目的Java兼容性一致。

更简洁的Gradle写法

现在Gradle的Kotlin插件支持更统一的配置方式,你可以直接在kotlin块里设置,或者针对所有编译任务统一配置:

Groovy DSL 写法

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.9.20' // 替换为你使用的Kotlin版本
}

kotlin {
    jvmToolchain {
        languageVersion = JavaLanguageVersion.of(8)
    }
}

这种写法不仅会设置Kotlin的编译目标,还会自动配置Java编译任务的sourceCompatibility和targetCompatibility,同时确保使用的JDK版本符合要求,推荐使用这种方式,更简洁且不易出错。

Kotlin DSL 写法

如果你的Gradle用的是Kotlin DSL,配置如下:

plugins {
    kotlin("jvm") version "1.9.20"
}

kotlin {
    jvmToolchain {
        languageVersion.set(JavaLanguageVersion.of(8))
    }
}

Maven 配置

在Maven里,你需要配置kotlin-maven-plugin的jvmTarget参数,同时配合maven-compiler-plugin确保Java代码的兼容性(如果项目中有Java代码的话):

<build>
    <plugins>
        <!-- Kotlin编译插件 -->
        <plugin>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-plugin</artifactId>
            <version>1.9.20</version> <!-- 替换为你的Kotlin版本 -->
            <executions>
                <execution>
                    <id>compile</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <jvmTarget>1.8</jvmTarget>
                    </configuration>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>test-compile</goal>
                    </goals>
                    <configuration>
                        <jvmTarget>1.8</jvmTarget>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <!-- Java编译插件(如果有Java代码的话) -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

这里要注意,kotlin-maven-plugin的版本要和你项目中使用的Kotlin依赖版本保持一致,不然可能会出现兼容性问题。

内容的提问来源于stack exchange,提问作者Combo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:20:45