我正在尝试编写一个注解处理器来生成源文件,但不会覆盖在先前运行注解处理器期间生成的源文件。
因为我还在学习中,所以我按照Ryan Harter在以下视频中描述的方式创建了一个注解处理器:https://www.youtube.com/watch?v=IPlDL4EsY08。
我希望能够生成一个源文件,并允许开发人员手动编辑它,而不用担心注解处理器后续运行将覆盖手动更改。这可能不是常态,但我可以想到几个用例,这将证明是有益的。
我希望修改我的AbstractProcessor子类中的特定代码段:
目前,我发现每次运行gradle项目的构建任务时,似乎所有生成源文件夹中的文件都被删除了。这意味着,即使在运行构建任务之前存在生成的源文件,我在注解处理器中编写的检查给定生成源文件是否存在的代码也将始终返回负结果。是否有任何方法可以防止在使用注解处理器重新运行javac时清除生成的源文件夹?或者是否有更好的方法来实现我想要完成的操作?
因为我还在学习中,所以我按照Ryan Harter在以下视频中描述的方式创建了一个注解处理器:https://www.youtube.com/watch?v=IPlDL4EsY08。
我希望能够生成一个源文件,并允许开发人员手动编辑它,而不用担心注解处理器后续运行将覆盖手动更改。这可能不是常态,但我可以想到几个用例,这将证明是有益的。
我希望修改我的AbstractProcessor子类中的特定代码段:
try {
JavaFile file = JavaFile
.builder(builderType.packageName(), builder)
.build();
file.writeTo(filer);
} catch (IOException e) {
messager.printMessage(Diagnostic.Kind.ERROR, "Failed to write file for element", el);
}
目前,我发现每次运行gradle项目的构建任务时,似乎所有生成源文件夹中的文件都被删除了。这意味着,即使在运行构建任务之前存在生成的源文件,我在注解处理器中编写的检查给定生成源文件是否存在的代码也将始终返回负结果。是否有任何方法可以防止在使用注解处理器重新运行javac时清除生成的源文件夹?或者是否有更好的方法来实现我想要完成的操作?