2016-07-21 15 views
13

multiline annotationを使用して一定の定数を保存するJava 7 Webプロジェクトを維持しています。Eclipse 4.6でアノテーションプロセッサを使用するNeon

私は火星を使用していたとき、私は、Eclipseの罰金を設定することができたので、私が展開され、そのアプリケーションをTomcatを起動することができ、それが魅力のように働いた...

私がアップグレードされるまで! configurationにもかかわらず注釈処理が行われていません。

私はhere

Java 6つの注釈プロセッサは、バッチコンパイラにし、IDEでサポートされている文書としてこの問題は、原因機能のEclipse 4.6のにあることを発見しました。設計上、Java 6プロセッサはビルド時にのみ実行され、編集時には実行されません。 (バグ188558)

リンクbugは簡単で、その注釈処理は、正当な理由のために、Eclipseのインクリメンタル・コンパイル(おそらくBuild automatically ???)から削除されている、と言います。実際、Antを使ってCIサーバでプロジェクトをコンパイルすると、アノテーションはいつものように処理されます。

しかし、Eclipseでプロジェクトをもう実行できません。これは、マルチライン注釈の正しい処理に完全に依存します。

これまでのところを無効にして、Build Automaticallyフラグを無効にして、プロジェクトを手動でビルドしました。 結果なし

は、私はまた、チェックボックスが直観に反しているにもかかわらず、(私が意味する、それが「インクリメンタルモードで実行します」という名前で、デフォルトでオフにする必要があり、Java Compiler -> Annotation processing -> Factory Pathに行くmultiline-string jarファイルを選択し、Advancedプロパティに移動し、Run this container's processors in batch modeをオフにを試してみました、上記のバグによる)

このアプリケーションはWebアプリケーションなので、毎回ローカルTomcatに展開しようとします。

私はそれについて何ができると思いますか?

+1

eclipse forums/communityを参照してください。私はこれがとても特別だと思うので、ここで良い答えを得る可能性はそれほど大きくない。その製品を所有している人たちにもっと話してください。 – GhostCat

+0

この質問に対する解決策はありますか? – Tobia

+0

あなたの問題の解決策を手に入れましたか? –

答えて

0

提案のカップル:

  1. だけ使用しているmultiline annotationがJavaバージョン1.6をサポートします。たとえば、MultilineProcessorには@SupportedSourceVersion(SourceVersion.RELEASE_6)と指定されており、推奨されるPOM設定ではとtargetの値は1.6となります。パッケージがJDK Compliance Levelでビルドしている場合は、注釈が無視されている可能性があります。
  2. その注釈を使用する代わりに、複数行の文字列を文字列変数にハードコードするだけで済みます。それはあなたのコードを読みにくくしますが、ビルドは速くなります。
+2

はい、正しいです。私たちは、文字列(HTMLテンプレート)を読みやすくするためにハードコードしないことを選択しましたが、最終的には、複数行の注釈からクラスパスリソースの読み込みに切り替えて、テンプレートをフォーマットされた読みやすいファイルに保存することにしました。 –

+0

私の答えが賞金を獲得する価値があると思うなら、すぐに私にそれを授与する必要があります。そうでない場合は、問題ありません。 http://stackoverflow.com/help/bounty – cybersam

+0

あなたは@VolkerK :-)に言及していたはずです –

関連する問題