SonarQube4.4+Jenkins進行程式碼檢查例項之二
但是有些程式碼檢查需要使用位元組碼,比如Findbugs的檢查依賴於位元組碼,例項一中只提取原始碼,就不能進行Findbugs的檢查。
要進行Findbugs檢查就需要編譯。以下例項操作來演示如何搭建
1,首先當然是要下載最新的Findbugs http://docs.codehaus.org/display/SONAR/FindBugs+Plugin ,當前最新版是V3.0, supports analysis of Java 8 bytecode but requires Java 1.7 to run (see Compatibility section)。 下載後將相應Jar包存放到 \sonarqube-4.4\extensions\plugins 下,
1b, 也可以在SonarQube的update center中下載,下載後按提示重啟SonarQube即可。
2,以admin登入到Sonar,將預設的Quality Profiles改為 Sonar way with Findbugs
3,在Jenkins中配置專案,筆者以Maven3為例,選擇 maven2/3專案
4,按Maven專案正常配置,在Goals and options留空,採用預設
5,在Post Steps中加入 Windows Batch command, 命令為: SonarQube Runner V2.4安裝位置\bin\sonar-runner.bat
6,配置專案,要告知SonarQube編譯結果在哪裡,並且加入更新到SVN下,如下:
# required metadata sonar.projectKey=Keqiang:CodeKatabySonarRunner sonar.projectName=CodeKatabySonarRunner sonar.projectVersion=2.0.0 # path to source directories (required) sonar.sources=src/main/java # path to project binaries (optional), for example directory of Java bytecode sonar.binaries=target/classes
7,在Jenkins中立即構建 此Job
8,訪問 http://localhost:9000 來看看SonarQube的結果,可以看到根據Findbugs的規則新發現的issue
說明1:Sonar way with Findbugs 是SonarQube預設的選擇,一共497條規則。SonarQube提供了方便的介面來修改。
說明2:SonarQube就發現的Issue設立了總指標Technical Debt,以工作量來表達需要多少時間修復這些issue。
小結:以上配置是簡單的。說白了,只需交待編譯結果在哪裡就可以了。
以上兩個例項,希望讀者能夠了解搭建SonarQube是多麼容易。
Jenkins並不是必須的,利用Sonar-Runner完全可以達到相同相關。加入Jenkins支援之後,就能根據Svn操作來自動啟動。