如何正确导入 Kotlin Multiplatform 项目并且只在构建时运行必要的任务

问题描述

在导入 Kotlin 多平台项目的情况下开发 android 应用程序时,是否可以不运行所有 iOS(kotlin/Native)任务(cinterop + cocoapods)?

我们当前的 KMP 项目(SharedLibrary)结构是:

SharedLibrary
 - build.gradle.kts
 - settings.gradle.kts
 - ...
 - shared
   - build.gradle.kts
     - commonMain
     - androidMain (android library target)
     - ...  

我们有一个单独的 Android 项目 (SomeApp),其中包含以下设置来导入我们的共享库。

// settings.gradle.kts
include ":shared"
project(":shared").projectDir = file("../SharedLibrary/shared")

问题是……这是一种非常烦人的开发模式,尤其是因为 iOS 工件(cinterop + cocoapods 等)每次发生变化时都会重新构建,即使我只关心 android 库工件。

我尝试过的事情:

  • 我尝试切换到复合构建,但出现与 gradle 无法找到多平台插件相关的错误。
  • 我正在考虑改用本地 Maven,但这肯定会减慢开发过程,所以我很抗拒。

这是我们设置的问题吗?还是任务只是相互依赖,没有办法解决?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)