Gradle KTS中如何让KMM项目sourceSet引用其他文件定义的依赖
你提及的A.gradle.kts应为笔误,以下默认对应你前文提到的dependencies.gradle.kts文件进行说明。
实现步骤
方式一:直接引用外部依赖文件中声明的常量
- 先在
shared/build.gradle.kts文件头部引入外部依赖配置文件:
// 按你实际存放dependencies.gradle.kts的路径调整,下面示例是文件放在项目根目录的情况 apply(from = rootProject.file("dependencies.gradle.kts"))
- 直接在commonMain的依赖块中调用你声明的依赖常量即可:
sourceSets { val commonMain by getting { dependencies { implementation(Coroutines.core) // 其他dependencies.gradle.kts中声明的依赖都按此格式添加 } } }
方式二:修改外部依赖文件自动注入到commonMain
如果不想每个模块都重复写依赖声明,可以直接修改dependencies.gradle.kts里的依赖配置,指定绑定到KMM的commonMain源集:
apply(Dependencies.common) dependencies { // 将配置名改为commonMainImplementation,应用后会自动注入到所有模块的commonMain源集 add("commonMainImplementation", Coroutines.core) }
修改后只要在需要的模块build.gradle.kts头部apply这个文件即可,不需要再重复在sourceSets里写依赖。
注意事项
- 引入外部文件时注意路径正确性,如果你把
dependencies.gradle.kts放在项目的gradle目录下,路径要改为rootProject.file("gradle/dependencies.gradle.kts") - 如果你使用Gradle官方的版本目录(Version Catalog)管理依赖,不需要额外apply外部文件,直接在commonMain的依赖块中用
libs.xxx.xxx的格式引用即可,维护成本更低。
内容的提问来源于stack exchange,提问作者gypsy0ne
相关产品推荐
相关产品推荐

