1 前言
良好的代碼習慣是一個優秀程式員應該具備的品質,但靠人的習慣與記憶來保證代碼質量,始終不是一件靠譜的事,在計算機行業應該深知,只要是人為的,都會有操作風險,本文講解如何通過Docker搭建代碼檢測平臺SonarQube,并使用它來檢測maven專案的代碼,
2 Docker安裝SonarQube
2.1 安裝
通過Docker安裝,方便快捷,不需要時直接刪掉容器和鏡像就好了,
# 拉取Sonar鏡像
docker pull sonarqube:8.3.1-community
# 運行實體
docker run --name sonarqube -p 9000:9000 -d sonarqube:8.3.1-community
接著訪問:http://localhost:9000/ 就可以了,默認管理員用戶和密碼為:admin/admin,
這里選擇免費的社區版Community,另外還有Developer、Enterprise等收費版本,功能更強大,具體差別如下:

2.2 指定資料庫
一般我們會自己啟動一個資料庫如Oracle、MySQL或PostgreSQL,相關系統資訊可以在Administration-System查看,我們不指定的話,默認是使用內嵌的H2資料庫,如果要指定其它資料庫,啟動Docker時需要指定:
-e SONARQUBE_JDBC_USERNAME="xxx" \
-e SONARQUBE_JDBC_PASSWORD="***" \
-e SONARQUBE_JDBC_URL="jdbc:mysql://xxx"
使用H2資料庫有會以下限制:
內嵌資料庫只能用于測驗場景,內嵌資料庫無法擴展,也無法升級到新版本的SonarQube,并且不能支持將你的資料遷移至其他資料庫引擎,
所以建議實際使用時,不要使用內嵌的H2資料庫,
2.3 進入容器
通過命令:
$ docker exec -it 容器ID bash
bash-5.0# ls
COPYING bin conf data elasticsearch extensions lib logs temp web
bash-5.0#
可以進入SonarQube容器,在目錄/opt/sonarqube可以查看組態檔、插件、資料檔案和日志檔案等,實際使用應該映射到宿主機的目錄上,這樣重新啟動一個實體,資料和配置都還在,
2.4 安裝插件
SonarQube提供了強大的插件管理功能,以中文語言包為示例,講解如何安裝插件:
Administration-Marketplace-Plugins,在搜索框輸入Chinese就可以選擇安裝了,

當狀態顯示為Install Pending時,說明插件安裝完成,點擊Restart Server即可生效,
3 通過maven檢測代碼
3.1 通過賬號密碼使用
指定SonarQube平臺的地址,并指定用戶名和密碼,就能檢測代碼了,具體命令如下:
mvn clean verify sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=admin -Dsonar.password=admin
3.2 通過Token令牌使用
當然,直接使用admin并暴露密碼并不是一個好的習慣,可以通過配置-權限-用戶來創建用戶,并創建令牌,

復制令牌:9656c84090b2481db6ea97b6d14d87d546bff619,
這樣,就可以通過令牌來操作了:
mvn clean verify sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=9656c84090b2481db6ea97b6d14d87d546bff619
執行命令后,就會在界面上自動新建了一個專案,并給出檢測結果:

Sonar提供了許多指標如測驗覆寫率、復雜度等,這能大大幫助我們寫出更好的代碼:

4 總結
SonarQube功能強大,是DevOps的重要工具之一,需要了解和掌握,
歡迎訪問南瓜慢說 www.pkslow.com獲取更多精彩文章!
歡迎關注微信公眾號<南瓜慢說>,將持續為你更新...

多讀書,多分享;多寫作,多整理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/187917.html
標籤:Java
