程式碼質量分析平臺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
。
官方參考文件: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
Mysql 庫表自動生成
Mysql配置好後,重新啟動Sonar會自動生產表,並初始化資料。
Sonar 使用介面
專案分析案例
1、執行sonar scaner 指令碼:mvn sonar:sonar
2、分析結果報表展示
關注推薦
作者:Owen Jia,一個想法比較多的架構師。
他的部落格網站:Owen Blog
推薦關注公眾號:冬天就要吃胖點
不要隨大流,做一個不