以前公司掃**用eclipse findbugs外掛程式,還擴充套件了8個自定義規則。最近有個需求,就是要把eclipse的findbugs外掛程式中自擴充套件規則整合到sonar中。
安裝sonarqube7.7後,在應用市場再安裝完findbugs
一開始想到sonar自定義規則,這個比較簡單,但是好像不滿足需求。需求是要整合到sonar的findbugs外掛程式中去。苦思冥想,發現了是不是可以自己改改 sonar-findbugs-plugin-3.11.0.jar,以達到效果。這個jar在sonar安裝完findbugs後可以在sonarqube-7.7/extensions/plugins拿到。拿到這個jar後,第一感覺就是反編譯下:
意思很明了,spotbugs繼承了findbugs,並且sonar-findbugs-plugin-3.11.0也早已把findbugs公升級為spotbugs了,可以在
中檢視公升級日誌。
咱們繼續分析,目前想到2種辦法。
第1種:那是不是可以把sonar-findbugs-plugin-3.11.0.jar依賴的spotbugs-3.1.12.jar原始碼改下,把自定義規則加進去。然後再重新打包,放進sonar-findbugs-plugin-3.11.0.jar中,再上傳到sonarqube-7.7/extensions/plugins中,再重啟sonar.此方法筆者就不試了。應該是沒有問題的。
spotbugs官網發現說是可以擴充套件,但是筆者嘗試將fb-contrib.jar放入指定目錄中
然後重新打包,發現放入fb-contrib.jar和不放打出來的jar,體積一樣。
說明沒打進去。目前採用的辦法就是直接在原始碼中加,eclipse外掛程式也是這麼做的。
第2種:檢視sonar-findbugs-plugin-3.11.0.jar原始碼,發現了
這個不就是對應sonar裡面的規則嗎?
個人猜測,是不是在執行時,fb-contrib.jar會被使用,sonar-findbugs-plugin原始碼中搜尋fb-contrib.jar
未完待續。。。
SonarQube安裝教程
將解壓後的檔案移至需要放置的目錄下,執行命令 mv sonarqube 6.7.6 usr local sonar 改名,執行命令 mv sonarqube 6.7.6 sonarqube 資料庫連線,資料庫中事先一定建立乙個名為sonar的資料庫 sonar.jdbc.url jdbc mysql...
SonarQube配置專案
在administration projects management頁面上配置專案。要能夠配置專案,您必須登入並被授予配置專案的許可權。要配置乙個新專案,可以使用頂部選單中的 選單,或者如果具有全域性管理許可權,請轉到administration projects management頁面並單擊c...
sonarqube資料關係分析
應用場景 sonarqube跨版本公升級後專案和使用者許可權的遷移 8.4版本postgresql select uuid,name from users where name vincent axqujkrye0v5enzztd15 vincent select distinct componen...