【发布时间】:2018-05-19 09:46:21
【问题描述】:
假设我有两个子项目,lib1 和 lib2 和 build.sbts,看起来像这样:
lazy val libX = crossProject.in(file(".")).settings(
... // a bunch of settings
).jvmSettings(
... // a bunch of settings
).jsSettings(
... // a bunch of settings
)
lazy val libXJVM = apiClient.jvm
lazy val libXJS = apiClient.js
我需要在另一个大型多模块项目中使用它们,以便lib2 依赖于lib1。
如果我在主要build.sbt 中尝试这个:
lazy val lib1 = crossProject.in(file("lib1"))
lazy val lib2 = crossProject.in(file("lib2")).dependsOn(lib1)
lazy val lib1JVM = lib1.jvm
...
然后项目依赖似乎可以工作,但库内部 build.sbt 文件中的设置(例如 libraryDependencies)被完全忽略并且构建失败。
如果我尝试这样做:
lazy val lib1JS = project.in(file("lib1"))
lazy val lib2JS = project.in(file("lib2")).dependsOn(lib1JS)
dependsOn 似乎被忽略了,lib2 无法编译,因为它无法从 lib1 导入类型。
有什么方法可以在不复制主构建文件中的 crossProject 设置的情况下完成这项工作?
【问题讨论】: