gpt4 book ai didi

android - 是否可以创建引用公共(public)模块正确目标的 kotlin 多平台项目?

转载 作者:行者123 更新时间:2023-11-29 00:56:24 25 4
gpt4 key购买 nike

如果我们想用 Kotlin 构建一个多平台项目并且我们有这样一个结构:

common
android
android1
android2
backend
api1
api2

common 模块中,我们有 3 个目标/预设:

  • jvm(所有基于 jvm 的项目的通用代码)
  • jvmAndroid(所有jvm android项目通用代码,依赖于jvm)
  • jvmApi(所有jvm api项目通用代码,依赖于jvm)

我们如何正确配置我们的 build.gradle 文件以仅依赖于正确的预设/目标?

例如,如果我们想在我们的其他项目中使用公共(public)模块作为依赖项,我们需要使用类似的东西:

dependencies {
implementation project(':common')
}

但是,是否可以只使用公共(public)模块的正确部分?像这样的东西(适用于 android 1 和 2)?

dependencies {
implementation project(':common:jvmAndroid')
}

否则,当我们使用 implementation project(':common') 时,这将获得所有 jvm 预设/目标,但一些代码只会在正确的平台上有意义或工作(在这种情况下是 android 或 api ).

最佳答案

我们可以使用一种称为消歧目标的策略来实现这一目标。

https://kotlinlang.org/docs/multiplatform-set-up-targets.html#distinguish-several-targets-for-one-platform

我们需要做这样的事情:

val commonAttribute = Attribute.of("com.example", String::class.java)

jvm {
attributes.attribute(commonAttribute, "nameOfYourTarget")
}

在“客户端”和“服务器”端。同理。

关于android - 是否可以创建引用公共(public)模块正确目标的 kotlin 多平台项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com