警告:没有处理器声明任何这些注释:javax.annotation.Generated

Posted

技术标签:

【中文标题】警告:没有处理器声明任何这些注释:javax.annotation.Generated【英文标题】:warning: No processor claimed any of these annotations: 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 选项,并且这样做会使警告消失。我还是不明白为什么会这样

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于警告:没有处理器声明任何这些注释:javax.annotation.Generated的主要内容,如果未能解决你的问题,请参考以下文章

没有处理器声称这些注释中的任何一个

发出注释处理器的实时错误和警告

Java中以"@"开头的注释的用法

数据绑定注释处理器 kapt 警告

如何摆脱增量注释处理请求的警告?

XCode 6.3警告:合成属性