2016-12-16 4 views
1

Dagger2注釈プロセッサはEclipseインクリメンタルコンパイラをサポートしていますか? サンプルアプリケーションでDagger2をセットアップし、完全なコンパイル後(プロジェクトのクリーニング後)はすべて正常に動作しますが、わずかな変更(モジュールまたはコンポーネント)とインクリメンタルコンパイラのみの実行後には何も更新されず(エラーはEclipseログに表示されます) )。 これは正常で、完全なコンパイラの実行が高価なので、どうすればこの問題を解決できますか?Dagger2アノテーションプロセッサはEclipseインクリメンタルコンパイラをサポートしていますか?

ありがとうございます。

答えて

3

はいいいえ。

Daggerは、JDKの一部として提供される標準アノテーション処理APIのみを使用するように記述されています。実装にはコンパイラ固有のものはありません。したがって、理論的には、Daggerはのいずれかのコンパイラの下で動作する必要があります。

残念ながら、EclipseのそのAPIの実装でDaggerを実行しようとすると、かなりの数のバグにぶつかりました。 ECJ(Eclipseのインクリメンタルコンパイル、AndroidのJack toolchainなど)に基づくものは、予期しない方法でクラッシュする傾向があります。

AutoValueのようなプロジェクトでは、必要な機能のためにworkaroundsを構築するのに十分な限られた方法でアノテーション処理を実行しますが、これはDaggerにとってかなり大きな仕事になります。

したがって、Eclipseがアノテーション処理を確実にサポートできる場合、ダガーが動作するはずです。

+0

ありがとうございます。 – Lars

+0

最新のEclipseバージョンで修正されているようです... – Lars

+0

Eclipse Oxygenにアップグレードしても問題ありません。 – qwertzguy

関連する問題