我在我的sbt项目中使用了immutables.org和mapstruct注释处理器(我已将它们移动到子项目中,因此它们不会相互干扰)。
有时,编译我的项目在compileIncremental中失败,因为注释处理器会创建一个新文件,但是编译器已经读取了先前生成的文件,或者我在src / main / java中更改了我的界面,但是(之前)生成的源仍然是“实现“旧接口(它们将被覆盖,但只有在处理src / main / java中的源之后才会发生)。
我的解决方法是创建一个任务,预先删除生成的源,“(在编译中编译)”依赖于该任务。
还有其他办法吗?比如为一个项目禁用compileIncremental?或指定编译顺序? (比如第一个普通来源,然后是unmanagedSources)
或者查看sourceFiles是否真的发生了变化,然后只删除生成的源也适用于我,但我不知道如何处理它。
非常感谢任何帮助!
谢谢, 多米尼克