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

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

有没有人有一个逐步的程序来实现这样的项目?

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

需要澄清的是:

  • 为了处理给定项目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-compiler-plugin存在问题 ,但此处提供了一种解决方法。 使用它来编译生成的代码作为现有注释代码的一部分。

……和代码生成

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

maven-processor-plugin可以做到这一点……

https://code.google.com/p/maven-annotation-plugin/

文档示例:

     org.bsc.maven maven-processor-plugin   process  process  generate-sources      org.apache.maven.plugins maven-compiler-plugin  -proc:none     

Maven-Antlr-Plugin正是这样做的。 它从语法生成Java类,编译插件编译生成的类。 可能它对maven-annotation-plugin有用