2 つの Maven プロジェクトがあります。
- 1 つ目は、アノテーション、アノテーション プロセッサ、およびプロバイダ構成ファイルを定義して、ServiceLoader API を介してアノテーション プロセッサをトリガーします。
- もう 1 つは最初のプロジェクトに依存し、いくつかのクラスとインターフェイスを定義します。そのうちの 1 つは、最初のプロジェクトで定義された注釈で注釈が付けられます。
mvn clean && mvn compile
コンパイルが行われ、注釈処理が実行されることを確認するためだけに、(最初のプロジェクトをビルドしてインストールした後) で 2 番目のプロジェクトのビルドを呼び出します。期待どおりに動作します。単純な注釈プロセッサは、target/classes/
ダミー データを含むディレクトリにリソース ファイルを生成するだけです。
を使用して情報を出力しようとするとprocessingEnv.getMessager().printMessage(...)
、問題が発生し始めました。を使用Diagnostic.Kind.ERROR
すると、予想どおり、ビルドが停止し、メッセージが出力されます。ただし、それ以外Kind
(NOTE
または などWARNING
) では、メッセージは画面に書き込まれません。
私の環境に関するいくつかの情報:
Kubuntu 12.10
Linux 3.5.0-17-generic
Apache Maven 3.0.4 (r1232337; 2012-01-17 06:44:56-0200)
Java version: 1.7.0_09, vendor: Oracle Corporation
どこのバージョンも明示的に宣言していないmaven-compiler-plugin
ので、デフォルトのバージョン (2.3.2? わかりません) を使用しているに違いありません。
Kind
このセットアップですべてのメッセージの出力を有効にするにはどうすればよいですか? (つまり、maven を介して注釈プロセッサを起動する)