sonarqube+sonar_scanner+jenkins執行代碼檢查

1、簡介
一、SonarQube 介紹
SonarQube 是一個開源的代碼質量分析平臺,便於管理代碼的質量,可檢查出項目代碼的漏洞和潛在的邏輯問題。同時,它提供了豐富的插件,支持多種語言的檢測,如 Java、Python、Groovy、C、C++等幾十種編程語言的檢測。它主要的核心價值體如今以下幾個方面:

java

(1)檢查代碼是否遵循編程標準:如命名規範,編寫的規範等。
(2)檢查設計存在的潛在缺陷:SonarQube 經過插件 Findbugs、Checkstyle 等工具檢測代碼存在的缺陷。
(3)檢測代碼的重複代碼量:SonarQube 能夠展現項目中存在大量複製粘貼的代碼。
(4)檢測代碼中註釋的程度:源碼註釋過多或者太少都很差,影響程序的可讀可理解性。
(5)檢測代碼中包、類之間的關係:分析類之間的關係是否合理,複雜度狀況。



mysql

二、SonarQube 平臺是由 4 個部分組成
① SonarQube Server
② SonarQube Database
③ SonarQube Plugins
④ SonarQube Scanner



linux

三、SonarQube 工做流程
SonarQube 在進行代碼質量管理時,會從下圖 所示的七個緯度來分析項目的質量。
sonarqube+sonar_scanner+jenkins執行代碼檢查
SonarQube 須要數據庫的支持,用於存儲檢測項目後的分析數據,同時爲了實現可持續監測,還須要持續集成工具(如Jenkins)的支持,在構建版本前,經過Jenkins+Sonar 插件執行項目分析指令,最終的結果會經過SonarQube 服務器的Web 頁面展現。下圖是使用SonarQube作代碼持續審查的流程圖:
sonarqube+sonar_scanner+jenkins執行代碼檢查
開發人員把代碼push到SCM(如gitlab)【上圖第2步】,jenkins構建定義好的job,而後經過jenkins 插件(sonar scanner)分析源碼【上圖第3步】,jenkins把分析報告發到sonarqube server【上圖第4步】。
2、安裝
一、環境準備
(1)sonarqube-7.9.1
(2)sonar-scanner-4.0.0.1744-linux
(3)Sqlserver(sonar7.9以後版本不支持mysql,oracle必須使用ojdbc7或者更高版本)
(4)jenkins 2.138
(5)jdk-12.0.1(jdk必須使用jdk11或者是更高版本)
(6)CentOS 7
注意:sonar的安裝和啓動不用root用戶,而是用低權限的linux用戶,建議自建用戶sonar。













git

二、SonarQube安裝
(1)數據庫配置
Sqlserver新建數據庫sonar
注意:排序規則必須選用Chinese_PRC_CS_AS,不然數據庫初始化不成功
(2)SonarQube配置
下載 sonarqube-7.9.1 後解壓。




web

按以下配置修改 $SONAR_HOME/conf/sonar.properties 文件,配置數據庫信息:
sonar.jdbc.username=sa
sonar.jdbc.password=Sqlserver123
sonar.jdbc.url=jdbc:sqlserver://10.102.7.210;databaseName=sonar
#sonar訪問地址端口可根據狀況修改或者保持默認
sonar.web.port=9000




sql

三、啓動SonarQube
進入sonar的bin目錄($SONAR_HOME/bin/linux-x86-64),執行腳本 sonar.sh start
瀏覽器中訪問 http://10.102.7.218:9000/ ,界面以下:

數據庫

sonarqube+sonar_scanner+jenkins執行代碼檢查

默認登陸帳戶 admin 密碼 admin,可登陸後修改密碼。編程

四、配置sonarqube開機啓動
(1)添加sonar環境變量
修改 ~/.bash_profile
SONAR_HOME=/usr/soft/sonarqube-7.9.1/
PATH=PATH:$SONAR_HOME/bin/linux-x86-64
export PATH SONAR_HOME
(2)/etc/init.d 下增長sonar 文件
#!/bin/sh
/usr/bin/sonar $*
(3)加入開機啓動列表
sudo ln -s $SONAR_HOME/bin/linux-x86-64/sonar.sh /usr/bin/sonar
sudo chmod 755 /etc/init.d/sonar
sudo chkconfig --add sonar











瀏覽器

五、漢化
使用admin/admin登陸,選擇配置,再選擇應用市場,在搜索框內輸入「Local」,選擇「Chinese Pack」點擊安裝。
安全

sonarqube+sonar_scanner+jenkins執行代碼檢查
六、配置 Jenkins
Jenkins 安裝 SonarQube Scanner 插件
「系統管理」-->「插件管理」-->搜索「SonarQube scanner」-->點擊安裝便可
注意:此處須要注意jenkins版本是否支持sonar安裝,若是不支持請按照提示升級到相應的版本。



七、Jenkins 配置 SonarQube Scanner 插件
在 Jekins 中,進入 系統管理->系統設置->SonarQube servers: 勾選 Enable injection of SonarQube server configuration ... 選項。輸入:
Name: 可自定義。

Server URL: SonarQube 服務器的 URL。

Server authentication token: 點擊 Add 配置憑證:類型: 選擇 GitLab API token。API token獲取方式:登陸sonarqube,點擊右上角「用戶圖標」-->個人帳戶-->安全-->填寫令牌名稱(隨意)-->生成複製便可
sonarqube+sonar_scanner+jenkins執行代碼檢查
若是點擊 Add 沒有反應,建議更換瀏覽器,是瀏覽器兼容性問題。
sonarqube+sonar_scanner+jenkins執行代碼檢查
全局工具配置
進入 系統管理->全局工具配置->SonarQube Scanner: 點擊 SonarQube Scanner installations... 並配置 SonarQube Scanner。




sonarqube+sonar_scanner+jenkins執行代碼檢查
八、爲jenkins任務增長sonar檢查
Build Environment (構建環境): 勾選 Prepare SonarQube Scanner environment。

sonarqube+sonar_scanner+jenkins執行代碼檢查

Post Steps (發佈步驟): 點擊 Add post-build step,添加 Execute SonarQube Scanner。
Task to run: 輸入 scan,即分析代碼,此處咱們採用-X表明debug模式。
Analysis properties: 輸入如下內容:
sonarqube+sonar_scanner+jenkins執行代碼檢查
配置項說明:
JDK爲sonar_scanner所依賴的jdk版本




#sonar工程標識,隨意輸入不重複有表明意義便可
sonar.projectKey=bi_build_sonar

#sonar工程標識,隨意輸入不重複有表明意義便可
sonar.projectName=bi_build_sonar

#sonar工程版本號
sonar.projectVersion=1.0

#要分析的工程列表,多個用逗號分隔
sonar.modules=com.yss.bi.cml.client,com.yss.bi.common,portal-app,portal-web,com.yss.bi.iae

#源代碼路徑
sonar.sources=src/main/java

#class文件路徑
sonar.java.binaries=target/classes
測試 Jenkins 任務
構建項目:點擊當即構建。
執行成功後,打開 SonarQube 的地址,便可看到代碼檢查結果。
sonarqube+sonar_scanner+jenkins執行代碼檢查




若是您還想了解SonarQube的詳細使用說明,歡迎各位看官關注本人公衆號,回覆SonarQube便可繼續學習:
sonarqube+sonar_scanner+jenkins執行代碼檢查

相關文章
相關標籤/搜索