軟件版本:java
SonarQube:7.7 git
Jenkins:2.164.3github
SonarQube是一個開源的代碼質量分析平臺,便於管理代碼的質量,可檢查出項目代碼的漏洞和潛在的邏輯問題。同時,它提供了豐富的插件,支持多種語言的檢測, 如 Java、Python、Groovy、C#、C、C++等幾十種編程語言的檢測。sql
核心價值觀:docker
一個SonarQube服務器啓動3個主要流程:數據庫
一個SonarQube數據庫存儲:編程
好了,講了一堆概念開始進入正題了。安全
沒有安裝jenkins的能夠參考以前的文章。Linux -- 集成Jenkins服務器
本文爲了方便測試使用Docker安裝SonarQube。編程語言
運行SonarQube:
docker run -d --name sonarqube -p 9000:9000 sonarqube
啓動後默認登陸帳號爲admin/admin。
默認狀況下,鏡像將使用不適合生產的嵌入式H2數據庫。如須要設置數據庫請參考以下設置。
生產數據庫被配置成與做爲環境變量如下SonarQube屬性:sonar.jdbc.username
,sonar.jdbc.password
和sonar.jdbc.url
。
$ docker run -d --name sonarqube \ -p 9000:9000 \ -e sonar.jdbc.username=sonar \ -e sonar.jdbc.password=sonar \ -e sonar.jdbc.url=jdbc:postgresql://localhost/sonar \ sonarqube
更多高級設置能夠參考文檔:Docker安裝SonarQube
安裝chiese Pack中文插件,安裝完記得點擊頁面上的Restart重啓SonarQube。
而後重要的事情來了,就是配置質量閥。像咱們只想針對新提交的代碼進行審計,故定製以下質量閥指標:
好了,到此基本配置完了。下面開始集成Jenkins
由於咱們是用Jenkins作爲後臺的持續掃描調度服務,因此須要安裝SonarQube Scanner For Jenkins
插件,也就不須要安裝其餘的掃描器了。
在Jenkins系統設置->配置SonarQube服務器鏈接詳細信息。
構建項目:
sonar.projectKey=tembin_loan_test sonar.projectName=tembin_loan_test sonar.projectVersion=1.0 sonar.exclusions=*-ui/** sonar.language=java sonar.java.source=1.8 sonar.sourceEncoding=UTF-8 sonar.sources=$WORKSPACE sonar.java.binaries=$WORKSPACE
打開構建結果的連接來查看SonarQube具體的分析報告。
咱們須要在代碼分析沒法知足SonarQube的質量標準時,就項目構建失敗。Jenkins是支持這樣的,須要安裝插件Sonar Quality Gates Plugin
同時在系統設置->配置Quality Gates - Sonarqube。
而後,在項目工程中須要增長「構建後操做「。
項目構建失敗時,郵件通知提交代碼的人。jenkins默認集成了一個挺好用的郵件插件Extended E-mail Notification。
先進行全局設置,初始配置時建議勾選debug和watch,方便查看郵件是否發送成功。以下圖
項目配置郵件插件:
選擇右下角高級設置
sonar-pmd 3.2.0-SNAPSHOT 集成p3c-pmd 1.3.4-pmd6.10.0
編譯好的插件地址:sonar-pmd-plugin-3.2.0-SNAPSHOT.jar
提取碼:9a4i
把sonar-pmd-plugin-3.2.0-SNAPSHOT.jar 更新到sonarqube服務器上sonarqube-7.7/extensions/plugins/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar
更新後啓動sonarqube