当前位置: 首页 > 面试题库 >

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

康鹏云
2023-03-14
问题内容

有没有人在编译时有一个干净的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的编译器插件,但已有了解决方法在这里。使用它来将生成的代码编译为现有带注释的代码的一部分。

…和代码生成

  • Maven Central提供了一个很棒的Java代码生成库,称为CodeModel。这里有一个很好的教程。javax注释处理包也提供了一些工具来生成输出。


 类似资料:
  • 我正在尝试创建一个自定义注释,例如,确保字段或方法既是又是,如果字段或方法既不是又不是,则会生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 正如所暗示的,我不知道如何生成编译时错误。Processor的文档清楚地表明我不应该抛出异常, 如果处理器抛出未捕获的异常,该工具可能会停止其他活动注释处理器。 它接着描述了当提出错误条件时会发生什么,现在是如何提出错误条

  • 问题内容: 我正在尝试创建一个自定义批注,例如,以确保字段或方法为and ,并且如果该字段或​​方法不为and ,则将生成编译时错误,如以下示例所示: 到目前为止,我已经完成了两个自定义注释接口: 和: 如所示,我不知道如何生成编译时错误。Processor 的文档清楚地表明,我不应该抛出异常, 如果处理器抛出未捕获的异常,则该工具可能会停止其他活动的注释处理器。 它继续描述了引发错误条件时会发生

  • 问题内容: 我有一个注释处理器,用于保留策略= SOURCE的注释。 我不知道如何逐步调试它。 运行mvn install,编译或打包或ant javac时,我已发布了打印语句,记录器信息,并且在编译日志中看到了它们的sysout。 但是,我不知道如何在Eclipse中逐步调试处理器。我的意思是,您如何逐步调试编译时? 问题答案: 您必须使用调试配置从Eclipse调用Java编译器(您需要从“调

  • 我必须在扩展Composite的GWT客户机类上实例化一个由我的自定义注释处理器生成的类。生成的类也与此视图位于同一个包中。但是,当我运行超级开发模式(SDM)时,我得到以下错误。 常规的GWT编译不会产生错误。但是,我在SDM编译时得到了错误。 如何使GWT SDM编译此视图?

  • 那么,这是一种好的做法吗?有什么缺点吗?如果它像我现在看起来的那么好,为什么没有很多库以一种简单的方式来做到这一点(我找到的唯一一个是类索引)?相反,对于运行时处理,有这么多?