8

findbugs 1.3.2 の注釈を使用しようとしています。

edu.umd.cs.findbugs.annotations.NonNull簡単なテストで注釈を使用しましたが、正常に動作します。

ただし、現在、サブモジュールで構成され、maven を使用する大規模なプロジェクトがあり、Java ファイルにその注釈をインポートするだけで、次のコンパイル エラーが発生します。

com.sun.tools.javac.code.Symbol$CompletionFailure: class file for javax.annotation.meta.When not found

何が問題なのですか?すべてのサブモジュールに findbugs 依存関係を追加しようとしました。たぶんjsr305との競合ですか?依存関係の 1 つが jsr305 1.3.9 を使用していることがわかります。

4

2 に答える 2

8

@NonNull私の経験では、このエラーは、jsr305.jar がクラスパスにない場合に常に発生します。findbugs アノテーションを使用するには、annotations.jar と jsr305.jar の両方をクラスパスに追加する必要があります。
一部の注釈 (私が考えて@SuppressWarningsいる) は jsr305.jar なしで使用できますが@NonNull、確実に必要です。

(あなたは質問で jsr305.jar について言及しましたが、チェックしたことを明示的に述べていませんでした。また、人々はエラー メッセージを検索するときにここにたどり着き、jsr305.jar を追加する必要があります。) jsr305.jar の 1 つのバージョンがクラスパスにある必要があります。

于 2012-10-19T12:54:36.783 に答える