Scala 多模块项目?

day*_*mer 2 java scala maven sbt

  • 我有Java背景和学习的想法Scala
  • 我喜欢使用的其中一件事Maven是我可以将项目制作为多 Maven 模块。例子?
Project/pom.xml
       /persistence/pom.xml
       /business/pom.xml
       /services/pom.xml
Run Code Online (Sandbox Code Playgroud)

这样做的好处是,这些模块中的每一个都可以有自己的依赖项,并且可以独立测试它们,而不是运行一个单体应用程序。

我们如何实现类似的东西Scalasbt或者它的生态系统?

yǝs*_*ǝla 6

你绝对可以做到。它被称为SBT 多项目构建。您可以使用以下内容定义一个主项目和多个子项目(来自上面的文档链接):

import sbt._
import Keys._

object HelloBuild extends Build {
    lazy val root = Project(id = "hello",
                            base = file(".")) aggregate(foo, bar)

    lazy val foo = Project(id = "hello-foo",
                           base = file("foo"))

    lazy val bar = Project(id = "hello-bar",
                           base = file("bar"))
}
Run Code Online (Sandbox Code Playgroud)

每个项目都可以单独构建,您也可以将每个项目打包成一个单独的 JAR,或者将它们全部组合成一个主 JAR。每个项目都可以定义自己的依赖项,但如果需要,它们也可以共享。基本上你可以完全控制。例如,在这里查看我的项目构建文件。