如何在Kotlin multiplatform项目中配置使用Gradle application插件
问题原因
Kotlin 多平台插件会为不同目标创建独立的自定义 SourceSet(比如 JVM 目标对应jvmMain),而原生application插件默认只识别 JVM 单平台项目的默认main SourceSet 输出,所以找不到编译后的类,导致打包内容为空。
正确配置
修改你的build.gradle.kts如下:
plugins { kotlin("multiplatform") version "1.5.31" id("application") } kotlin { // 声明JVM目标,开启与Java生态插件的兼容 jvm { withJava() } sourceSets { val jvmMain by getting { // 此处可添加JVM侧依赖 } val jvmTest by getting } } application { mainClass.set("pl.gieted.flappy_bird.MainKt") } // 可选:显式关联run任务的类路径,避免运行时找不到类 tasks.named<JavaExec>("run") { classpath += kotlin.jvm().compilations["main"].output.allOutputs }
验证方式
配置完成后执行以下命令校验:
- 执行
./gradlew run可直接启动应用 - 执行
./gradlew assembleDist生成的压缩包会包含完整的启动脚本、依赖包和编译后的类文件
内容的提问来源于stack exchange,提问作者Gieted
相关产品推荐
相关产品推荐

