我正在定义多个JVM / JS交叉项目。每个包含一些常见的JVM / JS scala代码,我想将其提取到每个项目可以依赖的一般公共项目中。有人可以推荐我为普通和依赖项目定义build.scala文件的最佳方法吗?
答案 0 :(得分:3)
答案 1 :(得分:1)
您可以创建Multi-project builds
让我们说你有这样的项目结构;
root
project/Build.scala
project1
src/
project1.sbt
project2
src/
project2.sbt
projectN
src/
projectN.sbt
您可以在Build.scala
lazy val root = Project(id = "Main-Project",
base = file(".")) aggregate(project1, project2,..)
lazy val project2 = Project(id = "project2",
base = file("project1")).dependsOn(project1)
...
答案 2 :(得分:1)
我最终得到了下面的解决方案。
lazy val common = crossProject.in(file(".")).
settings(
).
jvmSettings(
).
jsSettings(
)
lazy val commonJVM = common.jvm
lazy val commonJS = common.js
...
lazy val p1 = crossProject.in(file(".")).
settings(
).
jvmSettings(
).
jsSettings(
).
jvmConfigure(_.dependsOn(ProjectRef(uri("../common"), "commonJVM"))).
jsConfigure(_.dependsOn(ProjectRef(uri("../common"), "commonJS")))
lazy val p1JVM = p1.jvm.
settings(...
lazy val p1JS = p1.js.
settings(...