新しい AutoPlugin メカニズムを使用して、sbt 用のコード生成プラグインを作成しています。設定を変更する必要がありsourceGenerators in Compile
ますが、プラグインから行うとどういうわけか機能しません。compile を呼び出した後、画面には何も出力されません。
ただし、その行sourceGenerators in Compile <+= (mySourceGenerator in Compile)
をプロジェクトの に移動すると、build.sbt
突然sourceGenerators in Compile
設定が変更され、コンパイル タスクを実行するとメッセージが画面に書き込まれます。
私がそこに欠けているものはありますか?プラグインのコードは次のとおりです。
package net.lopezbobeda.plugin
import sbt._
import Keys._
import java.io.{ File, Writer }
object MyPlugin extends AutoPlugin {
// by defining autoImport, the settings are automatically imported into user's `*.sbt`
object autoImport {
// configuration points, like the built-in `version`, `libraryDependencies`, or `compile`
lazy val mySourceGenerator = taskKey[Seq[File]]("Generate")
// default values for the tasks and settings
lazy val baseXtendPluginSettings: Seq[Def.Setting[_]] = Seq(
mySourceGenerator in Compile := {
val s: TaskStreams = streams.value
s.log.info("Generating! " + sourceManaged.value)
Nil
},
sourceGenerators in Compile <+= (mySourceGenerator in Compile) // if I put this line in build.sbt everything works as expected.
)
}
override def trigger = allRequirements
import autoImport._
override val projectSettings = baseXtendPluginSettings
}