一、介紹
Sonar全稱SonarQube是一個用於代碼質量管理的開源平台,用於管理源代碼的質量
二、sonar安裝
搭建一個數據庫postgres
docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres:12
搭建sonarqube
docker run --name sq --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -p 9001:9000 -d sonarqube
說明:
--name 指定容器名稱
-e 指定數據庫賬號和密碼
-d 指定版本
--link 指定連接的數據庫
-p 端口映射(后者為docker容器的端口,前者為服務器的端口)
sonar 環境搭建問題
常見錯誤
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
說明最新版本sonarqube需要內存大小不低於262144,那首先要保證運行環境的內存大小不低於3G
找到/etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
執行下列代碼立即生效
/sbin/sysctl -p
漢化
需要安裝Chinese Pack插件,需要登陸,英文版面可以對照着點擊
三、Soanr使用
第一步點擊登陸,成功登陸后界面如下,點擊項目名稱可以查看代碼質量詳情,繼續下鑽可以查看問題代碼詳情,如下圖所示
四、Sonar項目支持(以java為例):
1. 在sonar上構建一個項目
輸入項目標識及顯示名稱后,點擊設置
輸入令牌名稱,點擊創建,而后挨個點擊項目的類型,即可獲得掃描命令
2. 集成sonar maven插件
要想讓java項目支持mvn 命令,首先要集成sonar maven插件
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-maven-plugin</artifactId> <version>3.4.0.905</version> </plugin>
切換到該pom的目錄下,執行上述命令
mvn sonar:sonar -Dsonar.projectKey=test_one -D sonar.host.url=http://*.*.*.*:9001 -D sonar.login=7b**********f0e2 -s D:\apache-maven-3.5.4\conf\settings.xml
說明:
--D 指定推送分析結果的服務器及登陸的權限
-s 指定mavne的配置文件(因為我本地經常遇到錯誤,后面加上就好了)
此時,代碼開始分析,並將結果推送到sonar平台,分析完成后,即可在界面上查看。