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

Java 在同一编译过程中注释预处理和类生成的Maven示例?,java,maven,code-generation,preprocessor,Java,Maven,Code Generation,Preprocessor,有没有人有一个清晰的例子,说明maven项目在编译时预处理类注释,并在同一编译过程中编译后续生成的类 有人有一个分步的过程来实现这样的项目吗?Maven Antlr插件就是这样做的。它根据语法生成Java类,编译插件编译生成的类。可能有用在网上浏览了大量现有文档后,我想到了以下几点: 需要澄清的内容: 为了处理给定项目P上的注释,首先需要在单独的库中编译注释处理器。SP应该依赖于S 在Java5中实现注释处理与在Java6中实现注释处理完全不同 Java5依赖于apt的单独执行。相应的教程有助

有没有人有一个清晰的例子,说明maven项目在编译时预处理类注释,并在同一编译过程中编译后续生成的类


有人有一个分步的过程来实现这样的项目吗?

Maven Antlr插件就是这样做的。它根据语法生成Java类,编译插件编译生成的类。可能有用在网上浏览了大量现有文档后,我想到了以下几点:

需要澄清的内容:

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

  • Java6中提供了一种新的处理注释的方法:
  • 要实现处理器,请创建一个单独的Maven项目。上面的教程解释了如何继续。这是我们的图书馆
  • 然后,创建项目P并在S上添加Maven依赖项
  • 当前有一个解决方案,但有一个解决方案可用。使用它将生成的代码编译为现有注释代码的一部分
…和代码生成

  • Maven central提供了一个很棒的Java代码生成库,名为。一个好的教程是可用的。javax注释处理包也提供了一些工具来生成输出

    • maven处理器插件可以做到这一点

      文档中的示例:

      <build> <plugins>
        <!-- Run annotation processors on src/main/java sources -->
        <plugin>
          <groupId>org.bsc.maven</groupId>
          <artifactId>maven-processor-plugin</artifactId>
          <executions>
            <execution>
              <id>process</id>
              <goals>
                <goal>process</goal>
              </goals>
              <phase>generate-sources</phase>
            </execution>
          </executions>
        </plugin>
        <!-- Disable annotation processors during normal compilation -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <compilerArgument>-proc:none</compilerArgument>
          </configuration>
        </plugin>
      </plugins> </build>
      
      
      org.bsc.maven
      maven处理器插件
      过程
      过程
      生成源
      org.apache.maven.plugins
      maven编译器插件
      -过程:无
      
      谢谢,但老实说,我认为maven antlr插件太过分了。此外,该网站没有提供一个完整的例子来解释如何解决我提出的问题。我正在考虑更多关于AnnotationProcessor的事情。maven annotation插件看起来很有趣,但它正在进行中,文档不完整。没有帮助。我不认为他主张直接使用antlr插件,但看看它的源代码,看看它是如何做到的。这个答案中有很多好东西。但有一件事是不正确的:你可以在一次maven传球中完成。下面是一个例子,其中还包括一个使用JCodeModel的注释处理器:@user1050755谢谢你的建议。有一个问题:为什么使用JCodeModel而不是官方的?