在Eclipse 4.6 Neon

时间:2016-07-21 13:08:17

标签: java eclipse annotations

我正在维护一个使用multiline annotation存储某些常量的Java 7 Web项目。

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

直到我升级! 现在,尽管configuration已经完成了注释处理。

我发现此问题是由Eclipse 4.6的功能引起的,正如记录here

  

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

简而言之,链接bug表示注释处理已从Eclipse的增量编译中删除(可能是Build automatically ???),这是出于正当理由。事实上,当我使用Ant在CI服务器中编译项目时,注释会照常处理。

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

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

我还尝试转到Java Compiler -> Annotation processing -> Factory Path,选择multiline-string jar,转到Advanced属性并取消选中Run this container's processors in batch mode,尽管有复选框是违反直觉的(我的意思是,它应该被命名为#34;以增量模式运行"默认情况下未选中,根据上述错误)

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

您认为我能怎么做?

1 个答案:

答案 0 :(得分:0)

一些建议:

  1. 您使用的multiline annotation仅支持Java 1.6版。 (例如,MultilineProcessor指定@SupportedSourceVersion(SourceVersion.RELEASE_6),推荐的pom设置指定source的{​​{1}}和target值。)如果您的包正在构建{ {3}}大于1.6,这可能是注释被忽略的原因。
  2. 您可以将多行字符串硬编码为字符串变量,而不是使用该注释。它会降低你的代码的可读性,但构建会更快。