Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse4.6中使用注释处理器_Java_Eclipse_Annotations - Fatal编程技术网

Java 在Eclipse4.6中使用注释处理器

Java 在Eclipse4.6中使用注释处理器,java,eclipse,annotations,Java,Eclipse,Annotations,我正在维护一个用于存储某些常量的Java7Web项目 当我在使用Mars时,我可以很好地配置Eclipse,这样我就可以在部署了应用程序的情况下启动Tomcat,它就像一个魔咒一样工作 直到我升级! 现在,尽管存在注释,但不进行注释处理 我发现这个问题是由于Eclipse4.6的特性造成的,如文档所述 批处理编译器和IDE支持Java 6注释处理器。按照设计,Java6处理器只在构建期间执行,而不是在编辑期间执行。(bug 188558) 简而言之,链接中说,注释处理已经从Eclipse的增量编

我正在维护一个用于存储某些常量的Java7Web项目

当我在使用Mars时,我可以很好地配置Eclipse,这样我就可以在部署了应用程序的情况下启动Tomcat,它就像一个魔咒一样工作

直到我升级! 现在,尽管存在注释,但不进行注释处理

我发现这个问题是由于Eclipse4.6的特性造成的,如文档所述

批处理编译器和IDE支持Java 6注释处理器。按照设计,Java6处理器只在构建期间执行,而不是在编辑期间执行。(bug 188558)

简而言之,链接中说,注释处理已经从Eclipse的增量编译(可能是
自动构建
?)中删除,原因是合法的。事实上,当我使用Ant在CI服务器上编译我的项目时,注释会像往常一样得到处理

但是我不能再在Eclipse中运行我的项目了。这完全取决于多行注释的正确处理

到目前为止,我已经尝试禁用
自动构建
标志并手动构建项目无结果

我还尝试转到
Java编译器->注释处理->工厂路径
,选择
多行字符串
jar,转到
高级
属性,取消选中
以批处理模式运行此容器的处理器
,尽管该复选框违反直觉(我的意思是,它应该命名为“以增量模式运行”)根据上述错误,默认情况下未选中)

该应用程序是一个web应用程序,因此每次尝试都会将其部署到本地Tomcat


你认为我能做些什么?

有几点建议:

  • 您正在使用的仅支持Java版本1.6。(例如,
    multileProcessor
    指定
    @SupportedSourceVersion(SourceVersion.RELEASE_6)
    ,建议的pom设置指定
    目标
    值的
    1.6
    )如果您的包是使用大于1.6的值构建的,这可能就是注释被忽略的原因
  • 您可以将多行字符串硬编码到字符串变量中,而不用使用该注释。这会降低代码的可读性,但构建速度会更快

  • 转向eclipse论坛/社区?我认为这很特别,所以在这里得到一个好答案的机会不太大。最好和拥有该产品的人谈谈。这个问题有解决方案吗?你有解决问题的方案吗?我通过加载类路径资源杀死了注释处理工具,你是对的。我们选择不硬编码字符串(HTML模板)以解决可读性问题,但最终我决定从多行注释切换到使用类路径资源加载,从而将模板存储到格式化的可读文件中;如果没有,没问题。你应该提到@VolkerK:-)我没有打开赏金。用户沃克做到了。因此,如果你对答案发表评论,我会收到通知,但我只能授予你接受的标志,而不是赏金。虽然我已经解决了我的问题,但您的答案并没有为我的问题提供真正的
    答案,因此我目前并不急于接受;-)没有冒犯啊。我没有想到要检查是否有其他人设定了赏金。似乎设置悬赏的人也应该自动得到通知,因为这个人有点“接受”这个问题,并且真的,真的想知道答案。