警告:没有处理器声明任何这些注释: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的主要内容,如果未能解决你的问题,请参考以下文章