在 Eclipse 4.6 Neon 中使用注释处理器

2022-09-04 23:38:27

我正在维护一个Java 7 Web项目,该项目使用多行注释来存储某些常量。

当我使用Mars时,我可以很好地配置Eclipse,所以我可以在部署该应用程序的情况下启动Tomcat,它就像一个魅力......

直到我升级!现在,尽管进行了配置,但仍未进行任何注释处理。

我发现这个问题是由于Eclipse 4.6的一个功能造成的,如此所述

批处理编译器和 IDE 中支持 Java 6 注释处理器。根据设计,Java 6 处理器仅在构建期间执行,而不是在编辑时执行。(错误188558)

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

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

到目前为止,我已尝试禁用该标志并手动构建项目。没有结果Build Automatically

我还尝试去,选择jar,去属性并取消选中,尽管复选框是违反直觉的(我的意思是,根据上面提到的错误,它应该被命名为“在增量模式下运行”并且默认情况下未选中)Java Compiler -> Annotation processing -> Factory Pathmultiline-stringAdvancedRun this container's processors in batch mode

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

你认为我能做些什么?


答案 1

一些建议:

  1. 您使用的多行注记仅支持 Java 版本 1.6。(例如,指定 ,建议的 pom 设置指定和值 。)如果你的包是使用大于 1.6 的 JDK 合规性级别构建的,这可能就是忽略注释的原因。MultilineProcessor@SupportedSourceVersion(SourceVersion.RELEASE_6)sourcetarget1.6
  2. 您可以直接将多行字符串硬编码为字符串变量,而不是使用该注释。这会让你的代码可读性降低,但构建会更快。

答案 2

推荐