我创建了一个 java 注释,将我的一些“服务”类标记为服务,然后编写了一个注释处理器来生成相应的 servicerequest 和 servicehandler 类。这是一个 GWT maven 项目,其中服务请求被发送到服务器到中央调度程序,由各种服务处理。
我的maven项目由一个父项目和5个子模块项目组成。
项目结构是这样的:
我的问题是这样的。
让注释处理器从一个项目(moodleWSAPI)读取和处理注释并在另一个项目(moodleGenerateServiceHandlers)中生成java源文件的规定方法是什么?
我似乎有很多注释处理器的例子为运行注释处理器的同一项目生成java源文件,但不为不同的项目生成java源文件。
我已经成功构建并测试了我的注释处理器,但我不知道如何让它在处理器运行的项目之外生成文件。目前它在moodleWSAPI中生成java源文件(这是错误的) 。我希望它处理moodleWSAPI中的源文件,然后在moodleGenerateServiceHandlers中输出新生成的源文件。
这是我必须创建实际的 java 源文件的代码片段..
public void createSourceFileFromTemplate(Template template, ClassSignature classSignature, VelocityContext context, Element element) {
PrintWriter pw = null;
try {
JavaFileObject sourceFile = processingEnv.getFiler().createSourceFile(classSignature.getFullName(), classSignature.getElement());
OutputStream fileStream = sourceFile.openOutputStream();
pw = new PrintWriter(fileStream);
template.merge(context, pw);
} catch (Exception e) {
e.printStackTrace();
if (element!=null) {
processingEnv.getMessager().printMessage(Kind.ERROR, e.getMessage(),element);
} else { …Run Code Online (Sandbox Code Playgroud)