在 sbt 中使用 'extend' 委托自定义配置

Delegation of custom configurations using 'extend' in sbt

我正在为 sbt 编写一个插件,它有两种配置 - baseext。 我想让 ext 扩展 base,所以我声明如下:

name := "blah"
lazy val base = config("base")
lazy val ext = config("ext") extend base
name in base := "something"

当检查 ext:name 时,它等于 "blah" 而不是像我预期的那样委托给 base:name

SBT Config extend vs DefaultSettings 中,我看到需要在项目中声明扩展配置(我假设委托不是配置的 属性,而是配置在项目内部的关系? ).

我的问题是,因为我正在编写一个插件,所以我不能对用户的项目是如何定义的做出任何假设。我怎样才能在我的配置之间声明授权?

好的,我自己才发现:插件加载时需要自动将配置添加到项目中。

就像可以覆盖 projectSettings 以使用自动插件添加设置一样,projectConfigurations 可以自动添加配置!

override val projectConfigurations = Seq(base, ext)