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

IntelliJ构建Kotlin桌面项目Jar包时遇Compose插件兼容错误

解决Compose插件与Kotlin编译器不兼容问题并构建可执行Jar

1. 修正版本兼容性配置

Compose Multiplatform 1.5.12仅兼容Kotlin 1.9.0,你当前使用的Kotlin 1.9.22超出了兼容范围,这是报错的核心原因。修改build.gradle.kts中的插件版本:

plugins {
    kotlin("jvm").version("1.9.0")
    id("org.jetbrains.compose").version("1.5.12")
}

无需手动指定Compose Compiler版本,Compose插件会自动匹配对应兼容版本,手动指定反而可能引发冲突。

2. 统一JVM版本配置

目标JVM 1.8与Gradle JVM 21的版本差异可能导致构建异常,建议将目标JVM调整为与Gradle JVM匹配的版本(Compose桌面推荐JVM 11及以上),在build.gradle.kts中添加:

kotlin {
    jvm {
        compilations.all {
            kotlinOptions.jvmTarget = "21"
        }
    }
}

3. 配置可执行Jar构建

默认jar任务生成的Jar不包含依赖,无法直接执行,需添加插件并配置主类:

方式一:使用application插件

  1. 在plugins块中添加插件:
plugins {
    kotlin("jvm").version("1.9.0")
    id("org.jetbrains.compose").version("1.5.12")
    application
}
  1. 指定主类(默认Hello World项目主类为MainKt):
application {
    mainClass.set("MainKt")
}

方式二:生成包含所有依赖的可执行Jar(推荐)

使用shadowJar插件打包所有依赖:

  1. 添加插件:
plugins {
    kotlin("jvm").version("1.9.0")
    id("org.jetbrains.compose").version("1.5.12")
    id("com.github.johnrengelman.shadow").version("8.1.1")
}
  1. 配置打包任务:
shadowJar {
    mergeServiceFiles()
    manifest {
        attributes["Main-Class"] = "MainKt"
    }
}

4. 执行构建

  • 若用application插件:先执行./gradlew run验证运行正常,再执行./gradlew assemble生成可执行Jar(路径:build/libs/[项目名]-all.jar)。
  • 若用shadowJar插件:执行./gradlew shadowJar生成包含所有依赖的Jar(路径:build/libs/[项目名]-shadow.jar)。

额外检查

  • 确保IntelliJ IDEA中Compose Multiplatform插件版本与项目使用的1.5.12一致,可通过Settings > Plugins调整。
  • 执行./gradlew clean清理旧构建缓存后再重新构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:26:15