1. 程式人生 > >程式碼質量分析平臺Sonarqube介紹

程式碼質量分析平臺Sonarqube介紹

問題:如何保證工程師提交的程式碼是符合標準的?

找個技術經理或架構師有事沒事就Code Review或者不定期舉行Review大會等等辦法,它們有一個共同的特點:成本大,難持續,所以找一個自動化程式碼質量分析工具就勢在必行了。

好用且開源的程式碼質量分析工具:Sonar Qube

官方很好幾個版本:社群版、開發者版、企業版、資料中心版。

核心痛點

  • 程式碼高質量檢測分析能力,Bug 檢查
  • 支援定製化 review 檢測
  • 可以與企業員工系統的賬戶體系打通
  • 與主流專案構建工具(Maven|Gradle)無縫融合
  • 部署配置簡單,文件充足
  • 原始碼開源,大企業支撐(全球化)

Sonar與LDAP結合

結合windows統一賬戶管理,使用ldap帳號登陸和郵件傳送服務體系。

參考技術文件: https://www.linuxhub.org/?p=4476

Sonar-scanner下載&文件地址:

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

簡單的專案配置Sonar

在專案的根目錄下新增sonar-project.properties檔案,並修改sonar:projectName\projectVersion\sources\binaries為具體專案值。

# must be unique in a given SonarQube instance

sonar.projectKey=my:project:nc-link

# this is the name displayed in the SonarQube UI

sonar.projectName=nc-o-link

sonar.projectVersion=2.0.2-SNAPSHOT

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.

# Since SonarQube 4.2, this property is optional if sonar.modules is set.

# If not set, SonarQube starts looking for source code from the directory containing

# the sonar-project.properties file.

sonar.sources=src

sonar.java.binaries=target

sonar.language=java

# Encoding of the source code. Default is default system encoding

sonar.sourceEncoding=UTF-8

Maven配置Sonar

直接配置Maven進行全域性管理,Maven本身自帶sonar外掛,不需要在根目錄單獨新增配置sonar-project.properties檔案,只需要在maven的config/setting.xml中新增sonar外掛配置即可,如下:

<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profile>
<id>sonar</id>
<activation> 
<activeByDefault>true</activeByDefault> 
</activation> 
<properties>
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>

在Project的根目錄直接執行命令:mvn sonar:sonar 或者 mvn clean verify -DskipTests sonar:sonar。第一次執行會下載相應的外掛比較慢,可以根據專案具體情況進行使用,多專案結構官方推薦mvn clean install + mvn sonar:sonar

下載外掛

success

官方參考文件:https://docs.sonarqube.org/display/sonarqube53/analyzing+with+sonarqube+scanner+for+maven

注意外掛版本問題

<!-- sonar自動化程式碼分析 -->
<plugin>
	<groupId>org.sonarsource.scanner.maven</groupId>
	<artifactId>sonar-maven-plugin</artifactId>
	<version>3.6.0.1398</version>
</plugin>

Maven Sonar Plugins

檢視支援的版本地址:http://maven-repository.com/artifact/org.sonarsource.scanner.maven/sonar-maven-plugin

20190709

Mysql 庫表自動生成

mysql-config

Mysql配置好後,重新啟動Sonar會自動生產表,並初始化資料。

mysql-database

Sonar 使用介面

login

index1

index2

專案分析案例

1、執行sonar scaner 指令碼:mvn sonar:sonar

sonar:sonar 1

sonar:sonar 2

2、分析結果報表展示

result1

result2

result3

關注推薦

作者:Owen Jia,一個想法比較多的架構師。

他的部落格網站:Owen Blog

推薦關注公眾號:冬天就要吃胖點

不要隨大流,做一個不