【问题标题】:Reference to undefined setting in plugin of multi-project sbt多项目 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 试图引用插件使用范围之外的设置。为什么会这样?我该如何解决?

【问题讨论】:

    标签: scala plugins sbt multi-project


    【解决方案1】:

    这里的问题不是多模块性质,因为它在单模块项目中也可以重现。

    然而,而不是

    override lazy val buildSettings = ...
    

    您需要使用projectSettings 使buildInfoPackage 任务可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 2019-01-02
      • 1970-01-01
      • 2013-12-05
      相关资源
      最近更新 更多