【问题标题】:Sbt doesn't enable some custom pluginsSbt 不启用某些自定义插件
【发布时间】:2018-03-07 20:13:44
【问题描述】:

我已经这样写了autoPlugin

object ThriftIfaceSbt extends AutoPlugin {

  override def projectSettings = {
    Seq(
      crossVersion := {
        println(s"Init ThriftIfaceSbt ${name.value}")
        CrossVersion.Disabled
      },
      autoScalaLibrary := false,
      resourceDirectories in Compile += baseDirectory.value / "src" / "main" / "thrift"
    )
  }

}

然后我 publishLocal 并在我的 build.sbt 中尝试

lazy val myProject = (project in file("a")).enablePlugins(ThriftIfaceSbt)

那个插件没有被应用到项目中。我不明白为什么。

SBT 有没有可能默默地忽略我的插件?

【问题讨论】:

    标签: sbt sbt-plugin


    【解决方案1】:

    它不起作用的一个可能原因是因为您覆盖了 sbt JvmPlugin 提供的设置,但您没有声明对它的依赖,因此它们被应用的顺序是未定义的。如果您的插件首先被应用,那么 JvmPlugin 设置将覆盖您的插件配置。

    你需要添加:

    override def requires = sbt.plugins.JvmPlugin
    

    到您的插件。即使这不能解决您的问题,您仍然需要添加它。

    【讨论】:

      猜你喜欢
      • 2014-12-05
      • 2017-02-10
      • 1970-01-01
      • 2015-10-17
      • 2017-09-30
      • 1970-01-01
      • 2015-08-23
      • 2021-01-11
      • 2018-10-29
      相关资源
      最近更新 更多