用jenkins+sonarqube去檢查代碼是很是方便的,它能檢查出代碼中可能存在的一些問題,好比io流未關閉、空指針異常、死循環、代碼不規範等問題。java
window系統+Jdk1.8+mysql5.6+python3.6python
工具包mysql |
描述git |
下載地址(未精確到版本號)github |
sonarqube-7.4.zipweb |
sonarqube核心包sql |
|
sonar-scanner-2.8.zipwindows |
代碼掃描器瀏覽器 |
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/ |
jenkins-2.190.2.zip |
jenkins核心 |
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; |
本項目解壓到了D:\jenkins_sonar\sonarqube-7.4,目錄結構如圖2-1
圖2-1
如圖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
下載漢化插件sonar-l10n-zh-plugin-1.24.jar放到如下目錄,下載地址https://github.com/SonarQubeCommunity/sonar-l10n-zh/releases
打開圖示windows批處理文件,若是命令行出現SonarQube is up則說
用本機瀏覽器輸入localhost:9999能正常進入首頁,則說明SonarQube配置成功。
如圖3-1所示
圖3-1
把解壓後獲得的bin目錄加入到環境變量中,圖示目錄是D:\jenkins_sonar\sonar-scanner-3.2.0.1227-windows\bin。
在一個項目根目錄下建立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。
點擊項目名進入對應的項目,出現如下掃描結果,就是成功掃描代碼了。