有人可以向我解释给定scope
的{{1}}和configuration
是什么,而没有指定使用它们吗?
task
似乎> show libraryDependencies
[info] * org.scala-lang:scala-library:2.11.12
> show {.}/ *:libraryDependencies
[info] *
> show {.}/libraryDependencies
[info] *
> show */ *:libraryDependencies
[info] *
> show *:libraryDependencies
[info] * org.scala-lang:scala-library:2.11.12
等于*:libraryDependencies
。那是对的吗 ?
因此,在插件代码中,您需要覆盖libraryDependencies
而不是projectSettings
或globalSettings
,对吗?
然后您不使用任何buildSettings
,这意味着Configuration
调用中没有任何内容,对吗?
答案 0 :(得分:0)
这在官方文档中已有详细说明。您正在寻找的是scope delegation的规则,基本上就是SBT在引用任务和设置时如何解析它们的方法,但是它们没有使用特定的轴配置进行定义。
简而言之,当您仅编写someKey
时,它将被解释为<current project> / <key-dependent configuration> / Zero / someKey
,这意味着它的作用域是shell中的当前项目,取决于键本身的配置以及{{ 1}}任务范围。如果没有为此特定范围中的键分配任何值,则使用范围委派来查找定义(如果存在的话)。
请注意,Zero
语法是0.13和SBT早期版本的遗留物,不再建议使用。使用统一的斜杠语法-文档中的所有示例都使用它,并且通常比旧语法更易于阅读和理解。