使用 Kotlin MPP 插件时,简单依赖项和源集依赖项之间有什么区别?
What is the difference between simple and source set dependencies when working with the Kotlin MPP plugin?
我正在使用 Kotlin MPP 插件(具有 .kts
支持),在阅读一些代码时,我遇到了 build.gradle.kts
如下文件:
kotlin {
sourceSets {
commonMain {
dependencies {
api(kotlinxCollectionsImmutable)
}
}
}
dependencies {
with(Libs) {
commonMainApi(kotlinStdLibCommon)
commonMainApi(kotlinxCoroutinesCommon)
}
}
}
在 sourceSet
中声明 api
依赖与声明 commonMainApi
依赖有什么区别?有没有?
没有区别。 commonMainApi 只是执行相同操作的另一种方法,看起来不再被推荐。 Link - https://kotlinlang.ru/docs/reference/building-mpp-with-gradle.html
Альтернативным способом указания зависимостей является использование
встроенного DSL Gradle на верхнем уровне с именами конфигурации,
следующими за шаблоном : [translation:
Alternatively, dependencies can be declared by specifying
configuration names at the top level using the built-in Gradle DSL]
dependencies {
commonMainApi 'com.example:foo-common:1.0'
jvm6MainApi 'com.example:foo-jvm6:1.0'
}
有趣的是,该文档被描述为 https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html 的翻译,其中这一段(关于替代语法)完全缺失,因此只能推断英文版本已更新并删除了替代语法在这一点上不推荐或过时。
我正在使用 Kotlin MPP 插件(具有 .kts
支持),在阅读一些代码时,我遇到了 build.gradle.kts
如下文件:
kotlin {
sourceSets {
commonMain {
dependencies {
api(kotlinxCollectionsImmutable)
}
}
}
dependencies {
with(Libs) {
commonMainApi(kotlinStdLibCommon)
commonMainApi(kotlinxCoroutinesCommon)
}
}
}
在 sourceSet
中声明 api
依赖与声明 commonMainApi
依赖有什么区别?有没有?
没有区别。 commonMainApi 只是执行相同操作的另一种方法,看起来不再被推荐。 Link - https://kotlinlang.ru/docs/reference/building-mpp-with-gradle.html
Альтернативным способом указания зависимостей является использование встроенного DSL Gradle на верхнем уровне с именами конфигурации, следующими за шаблоном : [translation: Alternatively, dependencies can be declared by specifying configuration names at the top level using the built-in Gradle DSL]
dependencies {
commonMainApi 'com.example:foo-common:1.0'
jvm6MainApi 'com.example:foo-jvm6:1.0'
}
有趣的是,该文档被描述为 https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html 的翻译,其中这一段(关于替代语法)完全缺失,因此只能推断英文版本已更新并删除了替代语法在这一点上不推荐或过时。