我写过像这样的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"
)
}
}
然后我发布了local并在build.sbt中尝试
lazy val myProject = (project in file("a")).enablePlugins(ThriftIfaceSbt)
该插件未应用于项目..我不明白为什么。
SBT可能会默默地忽略我的插件吗?
答案 0 :(得分:1)
它不起作用的一个可能原因是因为你覆盖了sbt JvmPlugin
提供的设置,但你没有声明对它的依赖,所以它们应用的顺序是未定义的。如果您的插件首先被应用,那么JvmPlugin
设置将覆盖您的插件配置的任何内容。
您需要添加:
override def requires = sbt.plugins.JvmPlugin
到你的插件。即使这不能解决您的问题,您仍然需要添加它。