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

如何在Gradle平台BoM中添加KMP JVM目标依赖?

解决Kotlin多平台项目BoM包含全平台构件的问题

你当前用java-platform插件生成的BoM只包含根构件(如io.ktor:ktor-client-core:3.0.3),是因为该插件默认只会识别KMP项目的根模块构件,不会自动包含各平台专属的带后缀变体(如-jvm)。要同时包含两种构件,需要手动在约束中添加各平台的构件依赖:

修改后的Gradle配置示例

plugins {
    `java-platform`
}

javaPlatform {
    allowDependencies()
}

dependencies {
    constraints {
        // 添加根构件
        api(project(":ktor-client-core"))
        // 添加JVM平台专属构件,版本和根构件保持一致
        api("io.ktor:ktor-client-core-jvm:3.0.3")
        
        // 如果还有其他平台(如JS、Native),按需添加对应构件
        // api("io.ktor:ktor-client-core-js:3.0.3")
        // api("io.ktor:ktor-client-core-linuxx64:3.0.3")
    }
}

apply(from = file("../../gradle/publish-pom.gradle.kts"))

补充说明

  • 若项目使用统一版本管理(比如通过version catalog或项目级变量),可以把硬编码的版本替换为变量,避免版本不一致:
    val ktorVersion = "3.0.3"
    api("io.ktor:ktor-client-core-jvm:$ktorVersion")
    
  • 目前java-platform插件没有原生支持自动收集KMP项目的所有平台变体,所以需要手动枚举所有需要包含的平台构件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:42:07