.sbt文件之间的优先级是什么?

时间:2015-04-18 10:38:15

标签: sbt

[SBT文件]说

  

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

但是,如果两个.sbt文件定义相同的设置,哪一个获胜?

2 个答案:

答案 0 :(得分:2)

截至sbt 0.13.8,我们might按字母顺序加载*.sbt个文件,但我不认为我们已将此行为记录为真。因此,此时可能是一个实施细节。

我们保证:

  1. 在同一档案中设置顺序
  2. auto plugins指定的插件依赖项
  3. 自动插件加载的设置,然后*.sbt
  4. 中的设置

    所以我建议尽可能使用自动插件。另一种取消设置优先级的方法是在ThisBuild范围内。您可以使用自动插件或某个项目来定义:

    organization in ThisBuild := "com.example"
    

答案 1 :(得分:1)

这是字母顺序:

<强> a.sbt

name := "a"

<强> b.sbt

name := "b"

测试:

% sbt 'show name'
[info] Loading global plugins from /Users/dnw/.dotfiles/.sbt/0.13/plugins
[info] Loading project definition from /Users/dnw/Desktop/t-2015-04-18.1551/project
[info] Set current project to b (in build file:/Users/dnw/Desktop/t-2015-04-18.1551/)
[info] b