首頁 > 軟體

設定Sonar、Jenkins進行持續審查

2020-06-16 17:36:04

本文以CentOS作業系統為例介紹Sonar的安裝設定,以及如何與Jenkins進行整合,通過pmd-cpd、checkstyle、findbugs等工具對程式碼進行持續審查。

一、安裝設定sonar

1、Sonar介紹

Sonar是一個用於程式碼品質管理的開源平台,用於管理Java原始碼的品質。通過外掛機制,Sonar 可以整合不同的測試工具,程式碼分析工具,以及持續整合工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通過不同的外掛對這些結果進行再加工處理,通過量化的方式度量程式碼品質的變化,從而可以方便地對不同規模和種類的工程進行程式碼品質管理。

同時 Sonar 還對大量的持續整合工具提供了介面支援,可以很方便地在持續整合中使用 Sonar。

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

2、設定資料庫

Apache Derby 是Sonar自帶並且預設安裝使用的資料庫,此外Sonar對如下資料庫提供支援:MySQL 5.x, Oracle 10g XE, Postgresql, MS SqlServer等,本文以mysql為例介紹如何設定資料庫: 

1)建立資料庫

在mysql中執行如下指令碼建立資料庫及mysql使用者

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)編輯${SONAR_HOME}/conf/sonar.properties設定資料庫:

sonar.jdbc.username:                       sonar
sonar.jdbc.password:                       sonar
sonar.jdbc.url:                            jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true

# Optional properties
sonar.jdbc.driverClassName:                com.mysql.jdbc.Driver

3)設定DB驅動包

如果使用Oracle資料庫,必須手動複製驅動類到${SONAR_HOME}/extensions/jdbc-driver/oracle/目錄下。其它支援的資料庫預設提供了驅動,http://docs.codehaus.org/display/SONAR/Analysis+Parameters 列舉了一些常用的設定及預設值.

4)常見錯誤及解決方法

新增語言套件後,啟動報錯分析:

下載安裝 sonar-l10n-zh-plugin-1.4.jar 語言套件(http://docs.codehaus.org/display/SONAR/Chinese+Pack),重新打包部署後,後台報錯如下:


IT145.com E-mail:sddin#qq.com