我们当前build.sbt
跨越250多行。
我们有两个问题:
当前的数据和评论分组方法:
// Plugins ///////////////////////////////////////////////////
enablePlugins(DockerPlugin)
// basic configuration : projects ///////////////////////////
name := """projectName"""
lazy val projectName =
(project in file(".")).....
我们有一些配置逻辑,我们希望在不同的项目之间共享。
有没有办法包含其他*.sbt
个文件?
或者你有一个建议如何解决这个问题而不是求助于写一个sbt插件?
答案 0 :(得分:5)
您可以做的一件事是将部分构建信息分解为项目目录中的scala文件。
E.g。在我们的构建中,我们在项目目录中有一个 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中定义。
答案 1 :(得分:4)
*.sbt
个文件?是的,您只需将build.sbt
文件的一部分放入项目根目录中的其他*.sbt
文件中即可。 SBT选取所有*.sbt
个文件并将它们合并在一起,因为只有一个大文件。