2012-06-19 224 views
2

我試圖使用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衝突?我看到我們的一個依賴使用jsr305 1.3.9。

+0

你正在得到類沒有發現異常。如果相關的jar被maven添加,請檢查java構建路徑。 –

+0

是的,maven依賴關係樹顯示FindBugs包含在類路徑中。 –

回答

2

根據我的經驗,當您使用@NunNull並且jsr305.jar不在類路徑中時,總會發生此錯誤。爲了使用findbugs註釋,您必須將annotations.jar和jsr305.jar都添加到類路徑中。
一些註釋(我在考慮@SuppressWarnings)可以使用沒有jsr305.jar,但@NonNull需要它肯定。

(你在你的問題中提到過jsr305.jar,但是你沒有明確說你已經檢查過了,而且人們在搜索錯誤信息時會降落在這裏,他們需要添加jsr305。 jar)。只有一個版本的jsr305.jar應該在類路徑中。

+0

工作就像一個魅力。將此添加到我的POM現在的編譯器是幸福的: \t com.google.code.findbugs \t JSR305 \t 2.0.3 mwilson

相關問題