kotlin - 具有共享模块的多平台项目
问题描述
我正在尝试创建一个具有共享依赖项的多平台项目,但我无法找出我做错了什么。
背景是我想创建一个生成某种配置的库,并将该配置用于应该在 jvm 和 node.js 上运行的运行时库。因此可以共享配置数据类,我想将其放入共享模块中。该代码根本不是特定于平台的。配置生成(我称之为 CLI)应该只是 jvm。所以我有这个模块(带有插件名称):
- cli (org.jetbrains.kotlin.jvm)
- 共享(kotlin-platform-common)
- 运行时共享(kotlin-platform-common)
- 运行时-js (kotlin-platform-js)
- runtime-jvm (kotlin-platform-jvm)
我通过 将共享模块设置为依赖compile project(":shared")
项,但似乎没有一个共享类位于从运行时开始的模块的类路径中。
这还不可能还是我做错了什么?
解决方案
要将通用模块(即使用 构建的模块kotlin-platform-common
)与其特定于平台的实现连接起来,您应该为它们提供expectedBy project(':shared')
依赖关系而不是依赖关系compile
。
您可以在Kotlin 参考或一些可用的示例项目中找到示例构建脚本,例如此处。
推荐阅读
- c# - 通过助手向布局添加多行 html 注释
- html - 禁用按钮时如何使按钮模糊
- assembly - 在 Masm x86 中动态分配连续位置
- android - 更新到 Android Studio 4.1 后,Android 包视图消失了
- php - 需要帮助解决以下 ``HTML``` 错误?
- linux - 合并数据行
- python - TypeError 上的 Python 属性错误:+= 不支持的操作数类型:'method' 和 'int'
- c++ - 在 std::list 上 push_back 或擦除时出现分段错误
- r - R-在每一行数据帧之后插入另一个数据帧的行?
- java - Android 向广播接收器发送数据