程式碼質量管理工具SonarQube詳解
阿新 • • 發佈:2019-01-30
SonarQube的目的是對軟體專案的程式碼進行分析,在開發人員提交程式碼之際就儘早發現程式碼的質量問題,並提示(或強制要求)開發人員改進。
SonarQube由以下幾個部分組成:
1. SonarQube Platform,就是SonarQube伺服器,這是SonarQube執行的基礎。
首先下載並解壓縮SonarQube的釋出軟體;必要的情況下配置解壓縮目錄下的sonarqube/conf/sonar.properties檔案;
啟動SonarQube Platform:
- Windows下執行StartSonar.bat
- Linux下執行sonarqube/bin/sonar.sh start console
啟動成功,可以訪問預設主頁http://localhost:9000/,登入的使用者名稱/密碼為admin/admin。
注意,在實驗驗證階段,SonarQube Platform預設使用H2資料庫;但是在生產環境中,還需要使用MySQL等其他企業級資料庫伺服器。2. SonarQube Scanner,即分析專案程式碼的預設啟動器
首先下載並解壓縮SonarQube Scanner;必要情況下,配置檔案sonar-scanner/conf/sonar-scanner.properties;建議配置如下:
- 每次提交前的分析,設定引數sonar.analysis.mode=preview
- 每天都要執行的CI分析,設定引數sonar.analysis.mode=publish
啟動SonarQube Scanner:
- Windows下執行sonar-scanner.bat
- Linux下執行sonar-scanner/bin/sonar-scanner
3.分析專案
首先根據專案程式碼的程式語言,線上安裝必要的SonarQube外掛,以支援專案使用的程式語言;然後,cd到要分析的專案目錄下,如some/projects/java/myproject/
在專案目錄下建立並配置sonar-project.properties檔案如下:
sonar.projectKey=org.sonarqube:it-sonar-examples sonar.projectName=IT Sonar Examples Quality sonar.projectVersion=1.0 sonar.sources=. sonar.sourceEncoding=UTF-8 sonar.language=text
執行SonarQube Scanner啟動分析,就可以完成對專案程式碼的分析。
下面以Maven專案為例,詳細介紹用法:
對於Maven專案,除了使用上文提到的SonarQube Scanner進行分析之外,還可以使用maven-sonar-plugin外掛進行分析。使用maven-sonar-plugin外掛的步驟如下:
1) 配置Maven的settings.xml
<settings>
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://myserver:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
2) 配置Maven專案的pom.xml檔案
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.language>java</sonar.language>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.1.1</version>
</plugin>
</plugins>
</pluginManagement>
</build>
3) 使用maven-sonar-plugin外掛以進行SonarQube分析
mvn clean verify sonar:sonar
或mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.1.1:sonar
4) 檢視分析結果
開啟SonarQube伺服器的主頁http://localhost:9000/