4

我使用 SBT 构建的应用程序需要特定于主机系统的特定设置(甚至可能没有合理的默认值)。在我的特殊情况下,我说的是第三方软件的位置,其中包含构建所需的依赖库(尽管还有很多其他用例)。这些设置不应该是版本控制的,因此它们不能进入build.sbtproject/build.scala通常应该在 VCS 中并且适用于项目的所有签出。

在旧版本的 SBT(早在 0.7.7)中,可以定义具有默认值的属性,这些属性可以由用户在文件中设置(顺便说一下,build.properties此代码仍然存在于 SBT 源中,但似乎没有可以使用)。这对我来说可以完成这项工作(尽管缺乏强类型),但不再是一种选择。我想知道这个可能是常见任务的更现代的替代方案是什么。

4

1 回答 1

4

解决这个问题出人意料,但一旦你知道,这个答案就非常简单了。埋在 SBT 文档的“最佳实践”部分(这似乎有点奇怪)是关于“本地设置”的部分

将设置放在未检入版本控制的项目中的 .sbt 文件中,例如 /local.sbt。sbt 结合了来自多个 .sbt 文件的设置,因此您仍然可以拥有标准的 /build.sbt 并将其检查到版本控制中。

简单的!当然,您首先需要将任何自定义的用户可设置设置添加到您的项目中。为此,请查看这个 SO 答案(最初的问题是关于插件的,但那里的答案仅适用于单个项目)这是对SBT 文档的一个非常有用的补充成为海事组织。

于 2013-07-16T02:10:30.337 回答