介紹
Sonar是一個用於程式碼質量管理的開源平臺,用於管理原始碼的質量,通過外掛形式,可以支援包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種程式語言的程式碼質量管理與檢測 。
SonarQube平臺由4個元件組成:
- 一個SonarQube伺服器啟動3個主要流程:
- Web伺服器,供開發人員,管理人員瀏覽高質量快照並配置SonarQube例項
- 基於Elasticsearch的Search Server從UI返回搜尋
- 計算引擎伺服器負責處理程式碼分析報告並將其儲存在SonarQube資料庫中
- 一個SonarQube資料庫儲存:
- SonarQube例項的配置(安全性,外掛設定等)
- 專案,檢視等的質量快照
- 伺服器上安裝了多個SonarQube外掛,可能包括語言,SCM,整合,身份驗證和治理外掛
- 在構建/持續整合伺服器上執行一個或多個SonarScanner來分析專案
流程:
- 開發人員在他們的IDE中編寫程式碼並使用執行本地分析。
- 開發人員將他們的程式碼推送到他們最喜歡的SCM:git,SVN,TFVC
- Continuous Integration Server會觸發自動構建,以及執行SonarQube分析所需的SonarScanner的執行。
- 分析報告將傳送到SonarQube伺服器進行處理。
- SonarQube Server處理分析報告結果並將其儲存在SonarQube資料庫中,並在UI中顯示結果。
- 開發人員通過SonarQube UI稽核,評論,挑戰他們的問題以管理和減少他們的技術債務。
- 經理從分析中接收報告。Ops使用API自動配置並從SonarQube中提取資料。Ops使用JMX監控SonarQube伺服器。
安裝使用(docker安裝)
安裝啟動postgresql:
docker run --name postgresqldb -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres 複製程式碼
安裝啟動Sonar:
docker run --name sq --link postgresqldb -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresqldb:5432/sonar -p 9000:9000 -d sonarqube 複製程式碼
使用:
1、修改maven的setting檔案
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>
http://47.106.251.170:9000
</sonar.host.url>
</properties>
</profile>
</profiles>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.1.1</version>
</plugin>
</plugins>複製程式碼
2、使用“sonar-maven-plugin sonar:sonar”命令
成功後就會在sonar網頁上看到對應的專案:
本人提供訪問地址:http://47.106.251.170:9000/projects。(自己買的輕量級伺服器,請不要過度訪問)
漢化
頁面上扎到 Administration > Marketplace ,在搜尋框中輸入 chinese ,出現一個 Chinese Pack ,點選右側的 install 按鈕。
安裝成功後,會提示重啟 SonarQube 伺服器。
稍等一會,再看頁面上已經顯示中文了。