一、SonarQube的介紹
SonarQube是一個管理代碼品質的開放平台。
可以從七個次元檢測代碼品質(為什麼要用SonarQube):
(1) 複雜度分布(complexity): :代碼複雜度過高将難以了解、難以維護
(2) 重複代碼(duplications): :程式中包含大量複制粘貼的代碼是品質低下的表現
(3) 單元測試(unit tests): :統計并展示單元測試覆寫率
(4) 編碼規範(coding rules) :通過Findbugs,PMD,CheckStyle等規範代碼編寫
(5) 注釋(comments): :少了可讀性差,多了看起來費勁
(6) 潛在的Bug(potential bugs) :通過Findbugs,PMD,CheckStyle等檢測潛在的bug
(7) 結構與設計(architecture & design): :依賴、耦合等
Sonar 可以內建不同的測試工具、代碼分析工具、持續內建工具、IDE。
Sonar通過對代碼品質分析結果資料進行再加工處理,通過量化的方式來度量
代碼品質的變化,進而可以友善地對工程進行代碼品質管理。
支援的語言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。
二、SonarQube平台的組成:
(1) 資料庫:存放SonarQube的配置資料、代碼品質的快照資料
(2) Web服務:用于檢視SonarQube的配置資料、代碼品質的快照資料
(3) 分析器:對項目代碼進行分析,生成品質結果資料并存入資料庫中
(分析器有多種,我們選用 SonarQube Maven Plugin)

三、SonarQube代碼品質管理平台的安裝與配置
IP: 192.168.1.253
環境:CentOS 6.6、JDK1.8、 MySQL5.6、SonarQube6.3
準備工作:已安裝JDK1.8并配置好了環境變量
1、安裝裝MySQL5.6
wget http://repo.mysql.com//mysql-community-release-el6-5.noarch.rpm
yum install mysql-community-server
service mysqld start
chkconfig --list | grep mysqld
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
用上面的指令檢視到MySQL并沒有設定開機啟動,是以需要設定開機啟動
chkconfig mysqld on
建立sonar庫和使用者并授權
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar2017'
FLUSH PRIVILEGES;
3、安裝sonarqube
cd /usr/local/src
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.3.1.zip
unzip sonarqube-6.3.1.zip
mv sonarqube-6.3.1 /usr/local/
ln -sv /usr/local/sonarqube-6.3.1 sonarqube
ln -sv /usr/local/sonarqube/bin/linux-x86-64/sonar.sh /etc/init.d/sonar
4、配置sonarqube
vim /usr/local/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar2017
#----- MySQL 5.6 or greater
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=0.0.0.0
sonar.web.port=9090
5、為了友善遠端管理,防火牆中打開3306,9090端口
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT
重新開機防火牆,使端口配置生效
service iptables restart
6、啟動SonarQube
/etc/init.d/sonar start
7、在浏覽器輸入http://192.168.1.253:9090
登入賬号/密碼預設: admin/admin
預設是英文的,中文需要安裝插件(插件可以線上安裝也可以在官網下載下傳後放到插件目錄)