我正在编写一个插件,为compile
任务添加集合。
package myplugin
import sbt._
import Keys._
object MyPlugin extends AutoPlugin {
object autoImport {}
override lazy val projectSettings = Seq(
compile <<= compile.andFinally {
println("foo")
}
)
}
但是当我在项目中使用它时,我看到了
Reference to undefined setting:
*:compile from *:compile ((myplugin.MyPlugin) MyPlugin.scala:10)
Did you mean compile:compile ?
这可能在(Compile
,Test
等)中定义的任何上下文编译器中都很有用。
将compile
更改为(compile in Compile)
可解决问题。
但明确列出上下文会省略一些内容,例如ScctTest
(来自SCCT插件,用于代码覆盖)。
有没有办法可以为所有上下文定义此操作进行编译?或者我是否正在尝试做一些违反最佳做法的事情?