Configuration 在较新(0.10+;)版本的SBT中,本地设置(每个用户,不受版本控制)应该放在哪里?

Configuration 在较新(0.10+;)版本的SBT中,本地设置(每个用户,不受版本控制)应该放在哪里?,configuration,settings,sbt,Configuration,Settings,Sbt,使用SBT构建的应用程序需要特定于主机系统的特定设置(甚至可能没有合理的默认设置)。在我的特定案例中,我谈论的是一个第三方软件的位置,该软件具有构建所需的依赖库(尽管有很多其他用例)。这些设置不应进行版本控制,因此它们不能进入build.sbt或project/build.scala,后者通常应位于VCS中,并适用于项目的所有签出 在旧版本的SBT(早在0.7.7版本)中,可以使用用户在文件build.properties中设置的默认值(顺便说一句,SBT源代码中的此代码似乎不可用)。这对我来说

使用SBT构建的应用程序需要特定于主机系统的特定设置(甚至可能没有合理的默认设置)。在我的特定案例中,我谈论的是一个第三方软件的位置,该软件具有构建所需的依赖库(尽管有很多其他用例)。这些设置不应进行版本控制,因此它们不能进入
build.sbt
project/build.scala
,后者通常应位于VCS中,并适用于项目的所有签出


在旧版本的SBT(早在0.7.7版本)中,可以使用用户在文件
build.properties
中设置的默认值(顺便说一句,SBT源代码中的此代码似乎不可用)。这对我来说已经足够了(尽管没有很强的打字能力),但已经不再是一种选择。我想知道对于这项可能比较常见的任务来说,更现代的替代方案是什么。

解决这个问题花了令人惊讶的时间,但一旦你知道了,答案就非常简单了。隐藏在SBT文档“最佳实践”部分(这似乎有点奇怪)的是:

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

简单!当然,您首先需要将任何自定义的用户可设置设置添加到项目中。对于这一点,请查看(最初的问题是关于插件的,但那里的答案只适用于单个项目),这是一个非常有用的补充,它并不像IMO所说的那么清楚