问题描述:sbt文件大
我们目前的build.sbt
跨越 250 多行。
我们有两个问题:
可读性
当前方法分组数据和评论:
// Plugins ///////////////////////////////////////////////////
enablePlugins(DockerPlugin)
// basic configuration : projects ///////////////////////////
name := """projectName"""
lazy val projectName =
(project in file(".")).....
逻辑重用
我们有一些配置逻辑想要在不同的项目之间共享。
题
有没有办法包括其他
*.sbt
文件?或者你有什么建议如何在不求助于编写 sbt 插件的情况下解决这个问题?
最佳答案
您可以做的一件事是将部分构建信息分解到项目目录中的 Scala 文件中。
例如。在我们的构建中,我们在项目目录中有一个文件 Dependencies.scala,它在一个地方包含了各种项目的所有依赖项:
object Dependencies {
val akka_actor = "com.typesafe.akka" %% "akka-actor" % "2.3.13"
// ...
}
然后可以从 build.sbt 导入:
import Dependencies._
lazy val foo = Project(...) dependsOn (akka_actor, ...)
您还可以将任务和命令放入项目目录中的对象中。
更新:在寻找有关如何组织构建的灵感时,我经常做的一件事是查看复杂的、备受瞩目的 Scala 项目的构建,例如 akka .正如你所看到的,他们已经将很多逻辑移到了 project directory 中的 Scala 文件中。 .构建本身在 AkkaBuild.scala 中定义.
关于scala - sbt : Is there a better way of structuring large build. sbt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566372/