Java
Scala
Maven
Project/pom.xml /persistence/pom.xml /business/pom.xml /services/pom.xml
令人高兴的是,每个模块都可以具有自己的依赖性,并且可以独立测试它们,而不用运行一个整体应用程序。
我们如何实现类似的东西Scala,sbt或者它的生态系统?
sbt
你绝对可以做到的。这被称为SBT Multi-Project build。您可以使用以下内容定义一个主项目和多个子项目(来自上面的docs链接):
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")) }
每个项目都可以单独构建,也可以将每个项目打包到一个单独的JAR中,或者将它们全部组合到一个主JAR中。每个项目都可以定义自己的依赖关系,但是如果需要,也可以共享它们。基本上,您可以完全控制。例如,在这里查看我的项目构建文件。