JavaNeverGiveUp教程篇
用jenkins+sonarqube去檢查代碼是非常方便的,它能檢查出代碼中可能存在的一些問題,比如io流未關閉、空指針異常、死循環、代碼不規范等問題。
1. 搭建環境和下載工具包
1.1搭建環境
window系統+Jdk1.8+mysql5.6+python3.6
1.2下載工具包
工具包 |
描述 |
下載地址(未精確到版本號) |
sonarqube-7.4.zip |
sonarqube核心包 |
|
sonar-scanner-2.8.zip |
代碼掃描器 |
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/ |
jenkins-2.190.2.zip |
jenkins核心 |
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。
點擊項目名進入對應的項目,出現以下掃描結果,就是成功掃描代碼了。
代碼檢查出來的問題