【发布时间】:2017-05-07 23:38:33
【问题描述】:
这个问题与我对sbt-scapegoat 的麻烦有关,但我想在全球范围内了解这件事。
所以,sbt-scapegoat 定义了一个设置scapegoatVersion 和配置scapegoat。简短而完整的源代码可在here 获得。
当我设置scapegoatVersion in ThisBuild := "1.3.0" 时,它会被忽略:
> scapegoat:scapegoatVersion
[info] frontend/scapegoat:scapegoatVersion
[info] 1.0.0
[info] backend/scapegoat:scapegoatVersion
[info] 1.0.0
[info] {.}/scapegoat:scapegoatVersion
[info] 1.3.0
我理解是这样,因为scapegoatVersion := "1.0.0" 是从autoImport 对象为每个项目导入的,并且这样的设置比scapegoatVersion in ThisBuild 更精确,所以覆盖它。
我的问题是:如何在插件中定义这样的默认值,以允许使用 ThisBuild 或 Global 进行全局覆盖。
@编辑:
我发现version 设置我Defaults.scala 是使用:== 而不是:= 定义的。这是我要找的把戏吗?遗憾的是,它没有记录在案,而且它是 sbt 包的私有内容。
【问题讨论】:
标签: scala sbt sbt-plugin