SonarQube4.4+Jenkins进行代码检查实例之一
生活随笔
收集整理的這篇文章主要介紹了
SonarQube4.4+Jenkins进行代码检查实例之一
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在最新的《
關于代碼審查的幾點建議》中再次提到了代碼分析:
#敏捷有效實踐#?每日代碼自動檢查 英文是daily code inspection。對代碼質量關注時,安排人工檢查code review是需要的,但100% code review需要很多工作量,不是所有的組織值得這樣做,而工具自動檢查是只需少量人工建設配置,99%的組織值得采用。此實踐花費不多,收效不小。
#CMMI和敏捷#?共同點:同級互查,Peer?Review,也稱同行評審,同級互查是CMMI 三級VER過程域的特定實踐,要求定義哪些工作產物采用哪種同級互查形式,開展同級互查,并解決發現的問題,并分析結果。而敏捷實踐中,針對代碼,要么結對編程,要么代碼評審(code?review),相關要求進入到DoD。
推薦 Effective?Code?Review?with Sonar 詳見?http://t.cn/zHFfH8a
最近在自己電腦上更新了SonarQube,來分享下具體做法。 本文先來介紹最簡單的做法:利用Jenkins拉取代碼不編譯只掃描。 1,首先下載最新的SonarQube,參見http://www.sonarqube.org/downloads/?? ?當前最新版是4.4 下載后解壓,先不著急啟動。不知道為什么,SonarQube4.4沒有包括SonarQube最新推薦的規則引擎。 2,在相同下載頁,下載SonarQube Runner V2.4,解壓。采用全部缺省配置,不必修改。 3,下載SonarQube最新推薦的Java分析引擎,參見http://docs.codehaus.org/display/SONAR/Java+Plugin 。? ? ? 下載最新的Java Plugin?V2.4, 然后將其放到 ?\sonarqube-4.4\extensions\plugins 下,?其中\sonarqube-4.4是SonarQube的安裝目錄 ? ? 如果已經運行過分析,此目錄下可能存在?Surefire, JaCoCo, and Squid for Java plugins 以及?findbugs,這些老版本Jar都要移除,即是只留下Java Plugin?V2.4。findbugs先移除,在第2篇中會介紹使用最新的Findbugs。? 4,為快速試用,利用SonarQube缺省數據庫,到bin目錄下選擇合適環境目錄來啟動SonarQube。 5,利用Jenkins的windows batch command來啟動sonar,所以對Jenkins版本沒有特別要求,當然使用最新版Jenkins是最好的。筆者的Jenkins是V1.556。 6,在Jenkins中創建Job,選擇“構建一個自由風格的軟件項目” 7,在源碼管理中加入源碼的位置,筆者使用的是SVN,選擇Subersion,輸入Repository URL 8,在構建觸發器中,筆者選擇了Build periodically,輸入H H * * *, 意味著每天在Jenkins空閑的時候執行一次 9,在構建部分,選擇增加構建步驟,選擇Execute Windows batch command, 在命令框中輸入? ? ? ? ? ? ? ?SonarQube Runner V2.4安裝位置\bin\sonar-runner.bat 10,配置項目,在要分析的源代碼根目錄(與Repository URL要對應一致)下新建名為?sonar-project.properties 的文件,至少包括如下: # required metadata ,Keqiang:AgileJerryPomodoro是筆者項目的Key sonar.projectKey=Keqiang:AgileJerryPomodoro #AgileJerryPomodoro是筆者項目的名稱 sonar.projectName=AgileJerryPomodoro sonar.projectVersion=0.5.0 # path to source directories (required),從源代碼根目錄為基準 sonar.sources=src 11,將sonar-project.properties 加入到SVN。 12,到Jenkins中立即構建 剛剛建立的Job 13,訪問 http://localhost:9000??來看看SonarQube的結果 說明1:以上利用了SonarQube的缺省規則集:Sonar way,共115條規則,這是sonarqube多年來積累的精華規則。 SonarQube當前已經明確宣稱:“?We highly recommend that you limit your?Quality Profiles?to from the SonarQube engine? because we believe they are faster, more accurate (fewer false positives and false negatives), and more usable ?(they have better descriptions, etc)."? 說明2:?Squid, Surefire and Jacoco have been rolled into this Java plugin. from Java plugin V2.4
? 以上動作最多1小時就能完成,對于Java,就能得到業界最先進的代碼檢查結果。 通過結果再來學習干凈代碼,是事半功倍的做法。
6、盡量使用靜態代碼分析工具以提高審查效率。
筆者之前也談到過多次代碼分析、代碼檢查,見: 關于代碼評審的微博討論匯集?#敏捷有效實踐#?每日代碼自動檢查 英文是daily code inspection。對代碼質量關注時,安排人工檢查code review是需要的,但100% code review需要很多工作量,不是所有的組織值得這樣做,而工具自動檢查是只需少量人工建設配置,99%的組織值得采用。此實踐花費不多,收效不小。
#CMMI和敏捷#?共同點:同級互查,Peer?Review,也稱同行評審,同級互查是CMMI 三級VER過程域的特定實踐,要求定義哪些工作產物采用哪種同級互查形式,開展同級互查,并解決發現的問題,并分析結果。而敏捷實踐中,針對代碼,要么結對編程,要么代碼評審(code?review),相關要求進入到DoD。
推薦 Effective?Code?Review?with Sonar 詳見?http://t.cn/zHFfH8a
代碼審查高效組合推薦
最近在自己電腦上更新了SonarQube,來分享下具體做法。 本文先來介紹最簡單的做法:利用Jenkins拉取代碼不編譯只掃描。 1,首先下載最新的SonarQube,參見http://www.sonarqube.org/downloads/?? ?當前最新版是4.4 下載后解壓,先不著急啟動。不知道為什么,SonarQube4.4沒有包括SonarQube最新推薦的規則引擎。 2,在相同下載頁,下載SonarQube Runner V2.4,解壓。采用全部缺省配置,不必修改。 3,下載SonarQube最新推薦的Java分析引擎,參見http://docs.codehaus.org/display/SONAR/Java+Plugin 。? ? ? 下載最新的Java Plugin?V2.4, 然后將其放到 ?\sonarqube-4.4\extensions\plugins 下,?其中\sonarqube-4.4是SonarQube的安裝目錄 ? ? 如果已經運行過分析,此目錄下可能存在?Surefire, JaCoCo, and Squid for Java plugins 以及?findbugs,這些老版本Jar都要移除,即是只留下Java Plugin?V2.4。findbugs先移除,在第2篇中會介紹使用最新的Findbugs。? 4,為快速試用,利用SonarQube缺省數據庫,到bin目錄下選擇合適環境目錄來啟動SonarQube。 5,利用Jenkins的windows batch command來啟動sonar,所以對Jenkins版本沒有特別要求,當然使用最新版Jenkins是最好的。筆者的Jenkins是V1.556。 6,在Jenkins中創建Job,選擇“構建一個自由風格的軟件項目” 7,在源碼管理中加入源碼的位置,筆者使用的是SVN,選擇Subersion,輸入Repository URL 8,在構建觸發器中,筆者選擇了Build periodically,輸入H H * * *, 意味著每天在Jenkins空閑的時候執行一次 9,在構建部分,選擇增加構建步驟,選擇Execute Windows batch command, 在命令框中輸入? ? ? ? ? ? ? ?SonarQube Runner V2.4安裝位置\bin\sonar-runner.bat 10,配置項目,在要分析的源代碼根目錄(與Repository URL要對應一致)下新建名為?sonar-project.properties 的文件,至少包括如下: # required metadata ,Keqiang:AgileJerryPomodoro是筆者項目的Key sonar.projectKey=Keqiang:AgileJerryPomodoro #AgileJerryPomodoro是筆者項目的名稱 sonar.projectName=AgileJerryPomodoro sonar.projectVersion=0.5.0 # path to source directories (required),從源代碼根目錄為基準 sonar.sources=src 11,將sonar-project.properties 加入到SVN。 12,到Jenkins中立即構建 剛剛建立的Job 13,訪問 http://localhost:9000??來看看SonarQube的結果 說明1:以上利用了SonarQube的缺省規則集:Sonar way,共115條規則,這是sonarqube多年來積累的精華規則。 SonarQube當前已經明確宣稱:“?We highly recommend that you limit your?Quality Profiles?to from the SonarQube engine? because we believe they are faster, more accurate (fewer false positives and false negatives), and more usable ?(they have better descriptions, etc)."? 說明2:?Squid, Surefire and Jacoco have been rolled into this Java plugin. from Java plugin V2.4
? 以上動作最多1小時就能完成,對于Java,就能得到業界最先進的代碼檢查結果。 通過結果再來學習干凈代碼,是事半功倍的做法。
總結
以上是生活随笔為你收集整理的SonarQube4.4+Jenkins进行代码检查实例之一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谈谈产品开发团队的配置管理规则
- 下一篇: SonarQube4.4+Jenkins