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目录吗?我错过了一些基本的概念?