【问题标题】:warning: No processor claimed any of these annotations: javax.annotation.Generated警告:没有处理器声明任何这些注释:javax.annotation.Generated
【发布时间】:2019-01-30 10:13:37
【问题描述】:

我正在使用 NetBeans 8.2 开发一个模块项目,它带有 GUI 和一切。我正在使用大量 IDE 功能为 GUI 自动生成代码。

每次我对项目进行干净构建时,都会收到来自编译器的警告:

warning: No processor claimed any of these annotations:javax.annotation.Generated

浏览 build 目录,我看到 IDE 为我生成了一个类,Bundle.java,它在上面添加了给定的注释:

@javax.annotation.Generated(value="org.netbeans.modules.openide.util.NbBundleProcessor")

我需要这个警告消失。我尝试在网上搜索处理此特定注释的注释处理器,但我没有运气。此特定注释的注释处理器是否存在?

如果这是一个“无害警告”,我需要了解为什么在我的构建输出中证明它的存在是无害的。

如果需要,我可以在这个问题中包含从 IDE 传递给 javac-processorpath 选项的参数;我不是故意加进去的,因为它很长,但如果有必要我可以添加它

编辑#1:

我对 NetBeans 安装目录下的 common.xml 文件进行了“hacky”修改,以使对 javac 的调用不包括 -processorpath 选项,并且这样做会使警告消失。我还是不明白为什么会这样

【问题讨论】:

    标签: java netbeans annotations generated annotation-processor


    【解决方案1】:

    解决此问题的一个简单方法是从 NetBeans 代码生成器生成的 TopComponent 类中删除 @Messages 注释。根据NbBundle.Messages API Documentation,负责生成Bundle类的正是那个注解。

    一旦您删除该注解,您可能会从依赖@Messages 注解的内容的其他注解(即 TopComponent.OpenActionRegistration)中收到警告,因此请务必修改这些注解的内容,直到没有在您的代码中,不再依赖于该 Bundle。

    希望您的代码中没有其他内容依赖于您的 Bundle。

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 2021-11-25
      • 1970-01-01
      • 2021-06-12
      • 2019-08-06
      • 2011-01-06
      • 2013-03-30
      • 2018-10-12
      • 2017-10-22
      相关资源
      最近更新 更多