[英]Maven + Sonar + Findbugs: Findbugs needs sources to be compiled
在幾個月來第一次參與我的一個項目之后,我想運行Sonar來檢查我是否引入了任何新的違規行為。 正如我以前做過很多次,我首先下載了最新穩定版的Sonar(sonarqube-4.5.2)然后用mvn sonar:sonar
運行了這個項目mvn sonar:sonar
一切都與Sonar方式配置文件一起使用,因此我決定切換到Findbugs配置文件。 但是在分析項目時,我收到了以下警告:
[WARN] [13:21:45.287] Findbugs需要編譯源代碼。 請在執行聲納之前構建項目或檢查已編譯類的位置,以使Findbugs能夠分析您的項目。
我以前從未遇到過這個問題(在同一個項目中,但是使用舊版本的聲納) ,所以我在互聯網上搜索,發現我可能需要定義sonar.binaries
來將Sonar指向已編譯的類。 (看起來在我的情況下,Sonar過去自動發現了這一點) 。 不過我在pom.xml
添加了以下屬性:
<sonar.sources>${basedir}/src/org/myproject</sonar.sources>
<sonar.binaries>${basedir}/target/classes/org/myproject</sonar.binaries>
<sonar.java.binaries>${basedir}/target/classes/org/myproject</sonar.java.binaries>
<sonar.tests>${basedir}/test/org/myproject</sonar.tests>
但是,當看到sonar.binaries
現在明確指向Maven的目標文件夾時,我仍然得到相同的錯誤。
[INFO] [15:18:46.496] Source paths: src/org/myproject
[INFO] [15:18:46.496] Test paths: test/org/myproject
[INFO] [15:18:46.496] Binary dirs: target/classes/org/myproject
我試過的遠:
pom.xml
以包含以下聲納屬性
sonar-project.properties
文件,沒有任何成功 mvn sonar:sonar
之前使用各種Maven生命周期編譯項目mvn sonar:sonar
我真的很困惑,因為這在過去就像一個魅力。
使用Maven運行SonarQube分析時,您無需指定以下屬性:
sonar.sources
sonar.tests
sonar.libraries
sonar.binaries
,因為SonarQube Maven為您做到了這一點。
顯然你可以嘗試覆蓋它們,但你所做的是錯誤的,因為Maven編譯成“目標/類”,所以“sonar.binaries”應該設置為這個文件夾(而不是“target / classes / org / myproject”)。
因此,為了簡化(事實上也更簡單),只需從POM中刪除這些屬性即可。
還有另一個java庫設置,上面沒有提到:
例如
sonar.java.libraries=lib/*.jar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.