gradle - 如何将项目依赖项添加到 `kotlin-multiplatform` 插件创建的特定平台目标?

标签 gradle kotlin kotlin-multiplatform

以前,使用 Gradle 构建多平台项目依赖于每个目标平台的单独 Gradle 插件:kotlin-platform-commonkotlin-platform-jskotlin -platform-jvm.

Starting from Kotlin 1.3 ,现在使用一个 kotlin-multiplatform 插件进行统一。 The current documentation specifies how to set up multiplatform projects using this approach .

但是,在我的项目中,我有多个多平台项目,它们之间存在一些依赖关系。使用旧的多平台配置,每个不同的平台都是一个单独的模块,并且在项目之间添加依赖项需要将每个特定于平台的模块中的项目引用添加到其他项目中的相应模块:例如, project(':some-library:some -library-js') 从另一个 JS 模块中添加对 JS 模块的依赖。

在迁移到新的多平台配置时,我现在需要将使用旧配置方法配置的项目的依赖项添加到使用新 kotlin-multiplatform 插件配置的项目。

鉴于平台特定的模块现在由新插件指定和管理,我该如何处理?

最佳答案

我不确定以下方法是否是推荐的方法,或者我忽略了任何潜在的问题,但我的项目可以编译并且所有测试都通过。

在 Gradle 中,您可以向特定项目配置添加依赖项:

dependencies {
    implementation project(path: ':some-library', configuration: 'configName')
}

通过反复试验,我发现为每个平台模块类型指定以下配置依赖项是有效的:

  • 通用:配置:“存档”。如果没有这个,Gradle 配置就会失败,因为找不到代码依赖项。

没有以下内容,编译失败:

  • jvm:配置:'jvmDefault'
  • js:配置:'jsDefault'

例如,对于问题中指定的 JS 模块:

dependencies {
    implementation project(path: ':some-library', configuration: 'jsDefault')
}

关于gradle - 如何将项目依赖项添加到 `kotlin-multiplatform` 插件创建的特定平台目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55280650/

相关文章:

java - Android kotlin - 取消画廊选择时应用程序停止工作

kotlin - 设置格式时单元格值不再可编辑

android - 只能使用 releaseImplementation 和 debugImplementation 从 maven 添加 Kotlin Multiplatform Mobile 库

git - 如何自动使用 git 的版本信息设置 gradle 构建?

java - 在gradle依赖项和Java项目中导入AWS Textract

java - 从 Java 程序调用 Kotlin 时找不到 kotlin-reflection.jar

java - Android编译错误;已应用Java插件,不兼容android

kotlin - 如何在Kotlin/Multiplatform项目中使用Gradle liquibaseRuntime配置

android - 线程中的 KMM In CorrectDereferenceException

Kotlin-multiplatform:ShadowJar gradle 插件创建空 jar