jenkins+sonarqube進行代碼質量檢測


JavaNeverGiveUp教程篇

用jenkins+sonarqube去檢查代碼是非常方便的,它能檢查出代碼中可能存在的一些問題,比如io流未關閉、空指針異常、死循環、代碼不規范等問題。

1. 搭建環境和下載工具包

1.1搭建環境

window系統+Jdk1.8+mysql5.6+python3.6

1.2下載工具包

工具包

描述

下載地址(未精確到版本號)

sonarqube-7.4.zip

sonarqube核心包

https://www.sonarqube.org/downloads/

sonar-scanner-2.8.zip

代碼掃描器

https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/

jenkins-2.190.2.zip

jenkins核心

http://mirrors.jenkins.io/war-stable/

 

2. 配置SonarQube

2.1數據庫sonar庫

SonarQube需要連接mysql,並且mysql需要開啟innodb存儲引擎,查詢是否開啟的sql語句是SHOW ENGINES。mysql5.6默認開啟了innodb,那么直接在數據庫中創建以下數據庫,Sql如下:

創建用戶sonar:  

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;  

CREATE USER 'sonar' IDENTIFIED BY 'sonar';  

GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';  

GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';  

FLUSH PRIVILEGES;

2.2解壓SonarQube到指定目錄

本項目解壓到了D:\jenkins_sonar\sonarqube-7.4,目錄結構如圖2-1

 

 

 

圖2-1

2.3修改SonarQube配置文件

如圖2-2所示,sonar.properties增加以下配置,主要是連接數據庫的配置和tomcat端口。

sonar.jdbc.username=root

sonar.jdbc.password=root

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

sonar.web.port=9999

 

圖2-2

因為SonarQube需要jdk1.8或者以上才能啟動,如圖2-3所示wrapper.conf指定jdk版本為1.8。

 

 

 

 

圖2-3

2.5 SonarQube漢化

下載漢化插件sonar-l10n-zh-plugin-1.24.jar放到以下目錄,下載地址https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases

 

 

 

24 啟動SonarQube

打開圖示windows批處理文件,如果命令行出現SonarQube is up則說

用本機瀏覽器輸入localhost:9999能正常進入首頁,則說明SonarQube配置成功。

 

 

 

 

 

3. 配置SonarQube代碼掃描器

3.1解壓SonarQube掃描器到指定目錄

如圖3-1所示

 

 

 

 

 

圖3-1

3.2 配置環境變量

把解壓后得到的bin目錄加入到環境變量中,圖示目錄是D:\jenkins_sonar\sonar-scanner-3.2.0.1227-windows\bin。

3.3 測試本地代碼掃描

在一個項目根目錄下創建sonar-project.properties配置文件,並添加以下配置,以目錄D:\jenkins_sonar\WebStarter-security為例。

#sonarqube服務器地址

sonar.host.url=http://localhost:9999

#sonarqube用戶名默認就是admin

sonar.login=admin

#sonarqube密碼

sonar.password=admin默認就是admin

#項目唯一標識(不能出現重復)

sonar.projectKey=WebStarter-security

#項目名稱

sonar.projectName=WebStarter-security

#源代碼目錄

sonar.sources=./

#編譯生成的class文件的所在目錄

sonar.java.binaries=target

#版本號

sonar.projectVersion=1.0

sonar.language=java

#源代碼文件編碼

sonar.sourceEncoding=UTF-8

 

用cmd進入項目根目錄D:\jenkins_sonar\WebStarter-security,執行sonar-scanner命令,出現以下提示則說明項目代碼掃描成功。

 

 

 

 

瀏覽器進入http://localhost:9999/projects,右上角進行登錄,默認管理員用戶名和密碼都是admin。

點擊項目名進入對應的項目,出現以下掃描結果,就是成功掃描代碼了。

 

 代碼檢查出來的問題

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM