1.SonarQube簡介
1.簡介
Sonar是一個用於代碼質量管理的開源平台,用於管理源代碼的質量,通過插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語言的代碼質量管理與檢測,是代碼審查利器;可以幫助我們分析bug,漏洞,異味,代碼覆蓋率和重復代碼問題
2.組成
3.過程
1.開發人員在他們的ide中使用SonarLint運行分析本地代碼。
2.開發人員將他們的代碼提交到代碼管理平台中(SVN,GIT等)
3.持續集成工具自動觸發構建,調用SonarScanner對項目代碼進行掃描分析
4.分析報告發送到SonarQube Server中進行加工
5.SonarQube Server 加工並且保存分析報告到SonarQube Database中,通過UI顯示分析報告
2.docker安裝SonarQube
1.安裝數據庫-postgres
獲取 postgresql 的鏡像
$ docker pull postgres
啟動 postgresql
$ docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres:12
#說明:
--name db 是搭建的postgres數據庫docker 容器名稱
-e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar 是數據庫賬號和密碼
-d postgres 12 是postgres鏡像的版本
2.安裝SonarQube
獲取 SonarQube 的鏡像
$ docker pull sonarqube
啟動 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 9000:9000 -d sonarqube
ps:SonarQube的用戶名密碼一般使用sonar啟動,否則會報錯
#說明:
--name sq 是搭建的SonarQube數據庫docker 容器名稱sq
--link db 是連接上面postgres容器
-e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar 連接的db的端口號
-e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar SonarQube的用戶名和密碼:sonar/sonar
-p 9000:9000 第一個9000是對外訪問端口,第二是是對內訪問端口
-d sonarqube 是最新版本的SonarQube 鏡像
3.檢驗成功
$ docker ps
postgres和sonarqube都啟動說明搭建成功
3.SonarQube平台
1.打開http://localhost:9000/about,點擊login進行登錄,用戶名密碼:admin/admin
2.利用sonar 的插件體系,直接漢化
sonar並選擇Administration中,選擇MarketPlace,搜索Chinese Pack,點擊安裝,安裝完成后,重啟即可;重啟命令:docker restart sq
4.SonarScanner客戶端
1.下載安裝sonarscanner
下載地址:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
2.配置環境變量
$ sonar-scanner -h
驗證生效
3.服務端開啟認證
默認是不開啟的,可以手動開啟;開啟令牌后就只能有令牌的進行掃描
ps:至此,不是maven的項目,直接就可以用sonarscanner掃描了,maven的項目,接下來安裝maven
5.maven項目
1.下載安裝maven
下載地址:http://maven.apache.org/download.cgi
2.配置環境變量
$ mvn -version
驗證生效
3.修改maven中的conf-settings配置文件
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>
http://127.0.0.1:9000
</sonar.host.url>
</properties>
</profile>
6.掃描代碼
1.創建項目
2.執行掃描
終端進入項目根目錄,執行上面生成的命令
3.分析結果