我使用SBT构建的应用程序需要特定于主机系统的特定设置(甚至可能没有合理的默认设置)。在我的特定情况下,我在谈论一个第三方软件的位置,该软件具有构建所需的依赖库(尽管还有很多其他用例)。这些设置不应受版本控制,因此无法进入build.sbt
或project/build.scala
,这通常应位于VCS中,并适用于项目的所有签出。
在早期版本的SBT中(返回0.7.7),define properties的默认值可以由用户在文件build.properties
中设置(此代码still exists顺便提一下,在SBT源中,它似乎并不可用)。这对我来说是有用的(尽管缺乏强力打字)但不再是一种选择。我想知道这个可能是共同任务的更现代的选择是什么。
答案 0 :(得分:4)
令人惊讶地解决了这个问题,但是一旦你知道,这个答案就非常简单了。埋在SBT文档的“最佳实践”部分(这似乎有点奇怪),a section on "Local settings":
将设置放在未检入版本控制的项目中的.sbt文件中,例如/local.sbt。 sbt结合了多个.sbt文件的设置,因此您仍然可以使用标准的/build.sbt并将其检入版本控制。
简单!首先,您需要在项目中添加任何自定义的用户可设置设置。为此,请查看this SO answer(原始问题是关于插件,但答案只适用于单个项目),这对SBT documentation on the subject非常有用,但不如它可能是IMO。