モジュールの1つに、他のモジュールで使用されるカスタム注釈用のいくつかの注釈プロセッサが含まれているマルチモジュールmavenベースのプロジェクトに取り組んでいます。注釈プロセッサ モジュールの依存関係を他のモジュールに追加すると、そのモジュールの注釈はそれらの注釈プロセッサによって処理されます。
しかし最近、Checker Framework (型アノテーション用) を統合したところ、すべてのカスタム アノテーション プロセッサ (前述) が機能しなくなりました。それらを Checker Framework でも動作させる方法についてのアイデアは大歓迎ですか?
シナリオをクリアするには、
module_A という名前の Maven モジュールがあるとします。このモジュールには、"@FoodItem" という注釈 (クラス レベル) があります。「@FoodItem」アノテーションが付けられたクラスは「Food」インターフェースを実装する必要があるというルールを適用する必要があります。そこで、同じモジュール (module_A) に注釈プロセッサ「FoodItemAnnotationProcessor」を記述しました。これは、そのようなクラスを処理し、その規則への準拠をチェックします。
次に、module_A への maven 依存関係を持つ module_B という名前の別のモジュールがあるとします。このモジュールには、"@FoodItem" アノテーションが付けられた "Pizza" というクラスがあります。
上記の構成でプロジェクト (module_A と module_B を含む) をビルドすると、「FoodItemAnnotationProcessor」がコンパイル段階で実行され、上記のルールに対してクラス「Pizza」が検証されます。
その後、Checker フレームワークを module_B に統合しました (ここで説明したように)。その後、チェッカー フレームワーク関連の検証はコンパイル時に期待どおりに実行されますが、「FoodItemAnnotationProcessor」は機能しなくなりました。