0
我希望添加一個自定義源生成器以將其與scalapb(Scala協議緩衝生成器)一起使用。每個都可以自行工作。但是,如果兩者都結合在一起,則該項目在清理後第一次無法編譯。如果我再次運行編譯,它會成功。scalapb和自定義源生成器衝突
name := "Foo root project"
scalaVersion in ThisBuild:= "2.12.1"
sourceGenerators in Compile += Def.task {
val file = (sourceManaged in Compile).value/"demo"/"Test.scala"
IO.write(file, """object Test extends App { println("Hi") }""")
Seq(file)
}.taskValue
PB.targets in Compile := Seq(
scalapb.gen() -> (sourceManaged in Compile).value
)
錯誤消息:
[error] source file '/ ... /target/scala-2.12/src_managed/main/demo/Test.scala' could not be found
[error] one error found
[error] (compile:compileIncremental) Compilation failed
要重現此錯誤,您將需要的src/main/protobuf的至少一個原型文件。
令我困惑的是,兩個源代碼生成器,我的自定義任務和scalapb會發生衝突。他們不應該只是寫入src_managed目錄嗎?我錯過了一些基本的概念?