我的目标是“读取”某个包的Java类,然后在该包中的类和这些类中的方法上处理Javadoc和注释(最好是同时)。解决方案必须在Java 6或7中实现,构建工具是Maven 3.我们当前正在使用maven-compiler-plugin
,版本2.5.1
,但如果可用/必要,我可以进一步升级。
据我了解,javax.annotation.processing
类的目的是做这种事情,我相信this other SO answer的Java代码应该适用于我的目的,但实际的细节如何使它实际运行仍然有点模糊。
所有这一切,这就是我认为我需要的东西:
Maven的位置比Java代码更让我失望,所以如果你只回答一半,那将是我的复选标记的一半。此外,我的偏好是不将此注释处理器作为单独的插件放入Maven存储库,因为它将与我们正在使用的一些自定义注释紧密结合。
以下是我发现的相关问题的简要列表,但我无法综合自己的答案:
答案 0 :(得分:0)
我不确定您是否可以从注释处理器访问Javadoc。考虑使用Doclet API:
http://docs.oracle.com/javase/7/docs/technotes/guides/javadoc/doclet/overview.html
修改强>
这是我写的注释处理器。也许它可以作为样本:
对于Maven:据我所知,你必须在包含注释处理器的项目中将-proc:none
作为编译器参数(编译器插件)传递。在该项目中还添加以下资源文件:META-INF/services/javax.annotation.processing.Processor
并在第一行添加注释处理器的完全限定名称。
我通常将注释,注释处理器和这个“服务注册表文件”打包在同一个项目A中。然后在我正在使用注释的任何其他项目B中,因此依赖于此项目A,注释处理器自动被选中。
我正在使用Maven Compiler Plugin v2.3.2和Java SE 7。