【问题标题】:Java annotation processing only仅 Java 注释处理
【发布时间】:2014-07-18 11:49:27
【问题描述】:

我正在从 java 代码中进行注释处理。我已经弄清楚如何使用 Java Compiler API,(JavaCompilerCompilationTask 等)

所有这些前面提到的东西编译类。 有没有办法不用编译就可以运行注解处理?

我有一些想法来实现一些所谓的“StopProcessor”,它总是会失败并停止编译过程。有没有其他解决办法?

【问题讨论】:

  • “不编译”是什么意思?你如何在没有编译的情况下使用 java 类?什么是用例?
  • @NaveenRamawat 我的意思是我需要处理注释并停止。我不需要生成字节码。
  • 你想达到什么目的?
  • @Dany 那么您想在实际编译之前执行某种静态代码检查吗?你可以通过例如实现这一点使用 antlr 生成程序的 AST 并对 AST 进行预处理;但这可能不是您正在寻找的解决方案...
  • 您是否尝试将“-proc:only”作为选项api.javax.tools.JavaCompiler.getTask(选项参数)传递

标签: java annotations javac compile-time annotation-processing


【解决方案1】:

您需要将“-proc:only”参数传递给 java 编译器。这是the javac tool documentation的摘录:

-proc:only means that only annotation processing is done, without any subsequent compilation.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多