gpt4 book ai didi

scala - sbt : Is there a better way of structuring large build. sbt 文件

转载 作者:行者123 更新时间:2023-12-04 16:46:22 26 4
gpt4 key购买 nike

问题描述: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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com