多项目 sbt 插件中未定义设置的引用
Posted
技术标签:
【中文标题】多项目 sbt 插件中未定义设置的引用【英文标题】:Reference to undefined setting in plugin of multi-project sbt 【发布时间】:2016-09-20 07:11:34 【问题描述】:我有以下项目定义(简化):
object B extends Build
lazy val root = (project in file("."))
.aggregate(commons, processor)
lazy val commons = (project in file("commons"))
lazy val processor = (project in file("processor"))
.enablePlugins(BuildInfoPlugin, BuildTag)
和BuildTag
插件(也简化为手头的问题):
object BuildTag extends AutoPlugin
override def requires = BuildInfoPlugin
override lazy val buildSettings = Seq(
packageOptions in (Compile, packageBin) +=
Package.ManifestAttributes(("buildinfo.package", (buildInfoPackage in Compile).value))
)
当我加载项目时,我收到如下错误:
Reference to undefined setting:
./compile:buildInfoPackage from ./compile:packageBin::packageOptions
看起来 sbt 试图引用插件使用范围之外的设置。为什么会这样?我该如何解决?
【问题讨论】:
【参考方案1】:这里的问题不是多模块性质,因为它在单模块项目中也可以重现。
然而,而不是
override lazy val buildSettings = ...
您需要使用projectSettings
使buildInfoPackage
任务可用。
【讨论】:
以上是关于多项目 sbt 插件中未定义设置的引用的主要内容,如果未能解决你的问题,请参考以下文章