生成文档的Java注释的哪个生命周期?

时间:2018-11-06 11:20:07

标签: java annotations

我希望能够使用Java注释在我的代码中直接记录服务的依赖关系。这些注释可以包含有关目标系统,连接是传入/传出// 2方式以及连接类型(REST,RabbitMQ ...)的信息。

它看起来像这样:

@Dependency(target = "Twitter API", type = "Outgoing", medium = "REST") 

想法是从项目内部的所有注释中生成一个DOT file

我对如何使用所需属性创建自己的注释有一个不错的主意。但是,我不确定在我应该处理这些注释的编译/处理生命周期的哪一部分。

我知道注释处理器会生成源文件,但就我而言,编译器或应用程序本身完全不需要生成的文件。

理想情况下,我希望能够通过专用的Maven或Gradle任务触发注释处理和DOT文件生成。

编写自己的注释时,是否容易实现?

2 个答案:

答案 0 :(得分:1)

如果您要通过maven创建文档,则需要在下面添加两个依赖项作为插件,然后执行site maven目标。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.7.1</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>3.0.0</version>
        </plugin>

如果只想记录REST端点,则可以使用swagger。 如果您的项目使用spring,那么整合swagger非常容易。您可以使用this教程。

如果要将项目的依赖关系图保存在文件中,则只需执行以下maven命令即可。

mvn dependency:tree -Doutput=/path/to/file

答案 1 :(得分:0)

注释由Java编译器直接处理。

对于 Maven ,可以使用maven-compiler-plugin。如here所述,也可以分两步执行编译。

对于 Gradle ,可以在dependencies配置下的annotationProcessor块中添加处理器,如here所述。

注释retention可以指定为SOURCE,因此编译后将不会保留它们。