簡體   English   中英

在Eclipse 4.6 Neon中使用注釋處理器

[英]Working with annotation processors in Eclipse 4.6 Neon

我正在維護一個Java 7 Web項目,該項目使用多行注釋來存儲某些常量。

我可以在使用Mars時配置Eclipse,所以我可以在部署該應用程序的情況下啟動Tomcat,它就像魅力一樣......

直到我升級! 現在,盡管配置完成,仍未完成注釋處理。

我發現這個問題是由Eclipse 4.6的一個特性引起的,如此處所述

批處理編譯器和IDE中支持Java 6批注處理器。 按照設計,Java 6處理器僅在構建期間執行,而不是在編輯時執行。 (bug 188558)

簡而言之,鏈接的錯誤說明注釋處理已經從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 ,盡管復選框是違反直覺的(我的意思是,它應該是名為“以增量模式運行”並默認未選中,根據上述錯誤)

該應用程序是一個Web應用程序,因此每次嘗試將其部署到本地Tomcat。

你覺得我能做些什么?

一些建議:

  1. 您使用的多行注釋僅支持Java版本1.6。 (例如, MultilineProcessor指定@SupportedSourceVersion(SourceVersion.RELEASE_6) ,推薦的pom設置指定1.6 sourcetarget 。)如果您的包正在構建, JDK合規性級別大於1.6,這可能就是注釋的原因忽略。
  2. 您可以將多行字符串硬編碼為字符串變量,而不是使用該注釋。 它會降低您的代碼的可讀性,但構建速度會更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM