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插件
- 在plugins块中添加插件:
plugins { kotlin("jvm").version("1.9.0") id("org.jetbrains.compose").version("1.5.12") application }
- 指定主类(默认Hello World项目主类为
MainKt):
application { mainClass.set("MainKt") }
方式二:生成包含所有依赖的可执行Jar(推荐)
使用shadowJar插件打包所有依赖:
- 添加插件:
plugins { kotlin("jvm").version("1.9.0") id("org.jetbrains.compose").version("1.5.12") id("com.github.johnrengelman.shadow").version("8.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
相关产品推荐
相关产品推荐

