持續程式碼質量管理-Sonar部署

AlbenXie發表於2018-07-10

持續程式碼質量管理-Sonar部署

Sonar 是一個用於程式碼質量管理的開放平臺。通過外掛機制,Sonar 可以整合不同的測試工具,程式碼分析工具,以及持續整合工具。與持續整合工具(例如 Hudson/Jenkins 等)不同,Sonar 並不是簡單地把不同的程式碼檢查工具結果(例如 FindBugs,PMD 等)直接顯示在 Web 頁面上,而是通過不同的外掛對這些結果進行再加工處理,通過量化的方式度量程式碼質量的變化,從而可以方便地對不同規模和種類的工程進行程式碼質量管理。

在對其他工具的支援方面,Sonar 不僅提供了對 IDE 的支援,可以在 Eclipse 和 IntelliJ IDEA 這些工具裡聯機檢視結果;同時 Sonar 還對大量的持續整合工具提供了介面支援,可以很方便地在持續整合中使用 Sonar。

此外,Sonar 的外掛還可以對 Java 以外的其他程式語言提供支援,對國際化以及報告文件化也有良好的支援。

Sonar部署

Sonar的相關下載和文件可以在下面的連結中找到:http://www.sonarqube.org/downloads/

需要注意最新版的Sonar需要至少JDK 1.8及以上版本。

1
2
3
4
5
cd /usr/local/src
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.2.zip
unzip sonarqube-6.2.zip
mv sonarqube-6.2 /usr/local/
ln -s /usr/local/sonarqube-6.2/ /usr/local/sonarqube

準備Sonar資料庫

1
2
3
4
5
mysql
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar@pw';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar@pw';
mysql> FLUSH PRIVILEGES;

配置Sonar

1
2
3
4
5
cd /usr/local/sonarqube/conf/
vim sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonae@pw
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

配置Java訪問資料庫驅動(可選)

預設情況Sonar有自帶的嵌入的資料庫,那麼你如果使用類是Oracle資料庫,必須手動複製驅動類到${SONAR_HOME}/extensions/jdbc-driver/oracle/目錄下,其它支援的資料庫預設提供了驅動。

其它資料庫的配置可以參考官方文件:http://docs.sonarqube.org/display/HOME/SonarQube+Platform

啟動Sonar

可以在Sonar的配置檔案來配置Sonar Web監聽的IP地址和埠,預設是9000埠。

1
2
3
vim sonar.properties
sonar.web.host=0.0.0.0
sonar.web.port=9000

/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start

訪問Sonar

http://IP:9000

SonarQube Scanner

sonar掃描器下載: http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

1)安裝

1
2
3
unzip sonar-scanner-2.8.zip
mv sonar-scanner-2.8 /usr/local/
ln -s /usr/local/sonar-scanner-2.8/ /usr/local/sonar-scanner

2)配置

1
2
3
4
5
6
7
cd /usr/local/sonar-scanner/conf
vim sonar-scanner.properties
sonar.host.url=http://localhost:9000
sonar.sourceEncoding=UTF-8
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar@pw
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8

相關文章