0

我已经这样写了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有可能默默地忽略我的插件吗?

4

1 回答 1

1

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

您需要添加:

override def requires = sbt.plugins.JvmPlugin

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

于 2017-10-04T02:30:31.153 回答