【发布时间】:2018-11-06 11:20:07
【问题描述】:
我希望能够使用 Java 注释直接在我的代码中记录我的服务的依赖关系。这些注解可以承载目标系统的信息,连接是传入/传出/2路,以及连接类型(REST、RabbitMQ...)。
它可能看起来像这样:
@Dependency(target = "Twitter API", type = "Outgoing", medium = "REST")
这个想法是从项目内的所有注释中生成DOT file。
我对如何使用所需属性创建自己的注释有一个很好的想法。但是,我不确定我应该在编译/处理生命周期的哪个部分处理这些注释。
我了解注释处理器会生成源文件,但在我的情况下,编译器或应用程序本身根本不需要生成的文件。
理想情况下,我希望能够通过专用的 Maven 或 Gradle 任务触发注释处理和 DOT 文件生成。
写自己的注解是不是很容易做到?
【问题讨论】:
-
是的,您可以编写自己的注释处理器AnnotationProcessing101,它将处理您的注释。 This 是另一个不错的,比较基础的。
-
您可以尝试使用
exec-maven-plugin和java目标。如果需要,然后使用build-helper-maven-plugin将这些文件打包为您的应用程序的一部分。 -
感谢你们两位,我想我有了更清晰的想法。对于任何自定义注释,我都需要注释本身,以及它的处理器在一个单独的项目中。此外,我可以提供 Maven 或 Gradle 报告插件的实现,该插件将使用我的处理器来生成文档。如果人们不想使用 Maven 或 Gradle,他们仍然可以通过
javac自己使用处理器。
标签: java annotations