Scala 如何依赖一个通用的交叉项目
我正在定义多个JVM/JS交叉项目。每个项目都包含一些常见的JVM/JS scala代码,我想将这些代码提取到每个项目都可以依赖的通用项目中。有人能给我推荐一下为常规项目和相关项目定义build.scala文件的最佳方法吗?您可以创建 假设你有这样的项目结构Scala 如何依赖一个通用的交叉项目,scala,sbt,scala.js,Scala,Sbt,Scala.js,我正在定义多个JVM/JS交叉项目。每个项目都包含一些常见的JVM/JS scala代码,我想将这些代码提取到每个项目都可以依赖的通用项目中。有人能给我推荐一下为常规项目和相关项目定义build.scala文件的最佳方法吗?您可以创建 假设你有这样的项目结构 root project/Build.scala project1 src/ project1.sbt project2 src/ pr
root
project/Build.scala
project1
src/
project1.sbt
project2
src/
project2.sbt
projectN
src/
projectN.sbt
您可以在Build.scala中轻松定义依赖项
您可以创建
假设你有这样的项目结构
root
project/Build.scala
project1
src/
project1.sbt
project2
src/
project2.sbt
projectN
src/
projectN.sbt
您可以在Build.scala中轻松定义依赖项
CrossProject支持您使用的常规dependsOn操作。因此,您可以:
// call to settings needed so for an implicit conversion to kick in
lazy val common = crossProject.settings()
lazy val p1 = crossProject.dependsOn(common)
lazy val p2 = crossProject.dependsOn(common)
lazy val commonJVM = common.jvm
lazy val commonJS = common.js
lazy val p1JVM = p1.jvm
lazy val p1JS = p1.js
lazy val p2JVM = p2.jvm
lazy val p2JS = p2.js
GitHub上有一个连接。CrossProject支持您使用的正常Dependesson操作。因此,您可以:
// call to settings needed so for an implicit conversion to kick in
lazy val common = crossProject.settings()
lazy val p1 = crossProject.dependsOn(common)
lazy val p2 = crossProject.dependsOn(common)
lazy val commonJVM = common.jvm
lazy val commonJS = common.js
lazy val p1JVM = p1.jvm
lazy val p1JS = p1.js
lazy val p2JVM = p2.jvm
lazy val p2JS = p2.js
GitHub上有一个问题。我最终得出了下面的解决方案
lazy val common = crossProject.in(file(".")).
settings(
).
jvmSettings(
).
jsSettings(
)
lazy val commonJVM = common.jvm
lazy val commonJS = common.js
我最终得出了下面的解决方案
lazy val common = crossProject.in(file(".")).
settings(
).
jvmSettings(
).
jsSettings(
)
lazy val commonJVM = common.jvm
lazy val commonJS = common.js
当我这样做时,我得到一个断言失败:目录…common/js不包含在构建根目录…p1中。公共项目应该完全独立于其他项目,因此它不应该是任何其他项目的子项目。我无法复制此更新的答案以包含我正在使用的确切构建文件。我使用的是sbt 0.13.7。你能告诉我你在用什么吗?你能给我sbt>项目的输出吗?我最终得到了下面的解决方案。老实说,我不知道我是怎么到那里的!使用sbt 13.8和scala.js 0.6.5执行此操作时,我得到一个断言失败:目录…common/js不包含在构建根目录…p1中。公共项目应该完全独立于其他项目,因此它不应该是任何其他项目的子项目。我无法复制此更新的答案以包含我正在使用的确切构建文件。我使用的是sbt 0.13.7。你能告诉我你在用什么吗?你能给我sbt>项目的输出吗?我最终得到了下面的解决方案。老实说,我不知道我是怎么到那里的!使用SBT13.8和scala.js0.6.5