Maven在同一编译过程中预处理和生成类的示例?

Jér*_*nge 13 java preprocessor code-generation maven

有没有人在编译时预先处理类注释的maven项目有一个干净的例子,后续生成的类将在同一个编译过程中编译?

有没有人有实施这样一个项目的分步过程?

Jér*_*nge 21

在网上现有文档中进行了大量浏览之后,我想出了以下内容:

需要澄清的是:

  • 为了处理给定项目P上的注释,首先需要在单独的库中编译的注释处理器S.P应该依赖于S.
  • 在Java 5中实现注释处理绝对不同于Java 6中的注释处理.
  • Java 5依赖于apt的单独执行.这里这里的相应教程有助于理解Java 5中注释处理和实现的基础知识.新手阅读的好读物.
  • 使用Maven在Java 5中实现注释处理非常棘手.需要添加本地依赖项tools.jar来访问这些教程中描述的API.不干净.一些调用apt的第三方插件可用,但没有很好的文档记录.
  • 那些使用Java 6的人应该根据上面的教程快速开始实现他们的处理器.

使用Maven在Java 6中进行注释处理

  • Java 6中提供了一个新的来处理注释:Pluggable Annotation Processing.
  • 要实现处理器,请创建单独的Maven项目.上面的教程或者这个教程解释了如何继续.这是我们的图书馆S.
  • 然后,创建项目P并在S上添加Maven依赖项.
  • 目前的问题Maven的编译器插件,但已有了解决方法在这里.使用它来编译生成的代码作为现有注释代码的一部分.

......和代码生成

  • Maven central提供了一个名为CodeModel的优秀Java代码生成库.这里有一个很好的教程.javax注释处理包提供了一些生成输出的工具.

  • 这个答案中有很多好东西.但有一点是不对的:你可以在一个maven传递中做到这一点.下面是一个示例,其中还包括使用JCodeModel的注释处理器:https://github.com/jjYBdx4IL/example-maven-project-setups/tree/master/compile-time-annotation-processing (2认同)