SBT:Java注释处理器和编译器增量错误

SBT:Java注释处理器和编译器增量错误,java,annotations,sbt,Java,Annotations,Sbt,我在sbt项目中使用immutables.org和mapstruct注释处理器(我已将它们移动到子项目中,因此它们不会相互干扰) 有时,在compileIncremental中编译我的项目失败,因为注释处理器将创建一个新文件,但编译器已经读取了以前生成的文件,或者我在src/main/java中更改了接口,但(以前)生成的源仍然“实现”了旧接口(它们将被覆盖,但只有在src/main/java中处理源代码后才会被覆盖) 我的解决方法是创建一个任务,预先删除生成的源代码(compilein com

我在sbt项目中使用immutables.org和mapstruct注释处理器(我已将它们移动到子项目中,因此它们不会相互干扰)

有时,在compileIncremental中编译我的项目失败,因为注释处理器将创建一个新文件,但编译器已经读取了以前生成的文件,或者我在src/main/java中更改了接口,但(以前)生成的源仍然“实现”了旧接口(它们将被覆盖,但只有在src/main/java中处理源代码后才会被覆盖)

我的解决方法是创建一个任务,预先删除生成的源代码(compilein compile)所依赖的源代码

有没有其他方法可以做到这一点?比如为单个项目禁用compileIncremental?或者指定编译顺序?(比如首先是普通源,然后是非托管源)

或者,找出源文件是否真的发生了更改,然后删除生成的源文件,这对我也很有用,但我不知道如何处理

任何帮助都将不胜感激

谢谢,
Dominik

你能分享你的构建文件吗?