1 前言
良好的代碼習(xí)慣是一個優(yōu)秀程序員應(yīng)該具備的品質(zhì),但靠人的習(xí)慣與記憶來保證代碼質(zhì)量,始終不是一件靠譜的事。在計算機行業(yè)應(yīng)該深知,只要是人為的,都會有操作風(fēng)險。本文講解如何通過docker
搭建代碼檢測平臺sonarqube
,并使用它來檢測maven
項目的代碼。
2 docker安裝sonarqube
2.1 安裝
通過docker
安裝,方便快捷,不需要時直接刪掉容器和鏡像就好了。
1
2
3
4
|
# 拉取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
。
這里選擇免費的社區(qū)版community
,另外還有developer
、enterprise
等收費版本,功能更強大,具體差別如下:
2.2 指定數(shù)據(jù)庫
一般我們會自己啟動一個數(shù)據(jù)庫如oracle
、mysql
或postgresql
。相關(guān)系統(tǒng)信息可以在administration-system
查看,我們不指定的話,默認是使用內(nèi)嵌的h2
數(shù)據(jù)庫。如果要指定其它數(shù)據(jù)庫,啟動docker時需要指定:
-e sonarqube_jdbc_username="xxx" \
-e sonarqube_jdbc_password="***" \
-e sonarqube_jdbc_url="jdbc:mysql://xxx"
使用h2
數(shù)據(jù)庫有會以下限制:
內(nèi)嵌數(shù)據(jù)庫只能用于測試場景。內(nèi)嵌數(shù)據(jù)庫無法擴展,也無法升級到新版本的sonarqube,并且不能支持將你的數(shù)據(jù)遷移至其他數(shù)據(jù)庫引擎。
所以建議實際使用時,不要使用內(nèi)嵌的h2
數(shù)據(jù)庫。
2.3 進入容器
通過命令:
1
2
3
4
5
|
$ 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
可以查看配置文件、插件、數(shù)據(jù)文件和日志文件等,實際使用應(yīng)該映射到宿主機的目錄上,這樣重新啟動一個實例,數(shù)據(jù)和配置都還在。
2.4 安裝插件
sonarqube
提供了強大的插件管理功能,以中文語言包為示例,講解如何安裝插件:
administration-marketplace-plugins
,在搜索框輸入chinese
就可以選擇安裝了。
當(dāng)狀態(tài)顯示為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令牌使用
當(dāng)然,直接使用admin
并暴露密碼并不是一個好的習(xí)慣,可以通過配置-權(quán)限-用戶
來創(chuàng)建用戶,并創(chuàng)建令牌。
復(fù)制令牌:9656c84090b2481db6ea97b6d14d87d546bff619
。
這樣,就可以通過令牌來操作了:
mvn clean verify sonar:sonar -dsonar.host.url=http://localhost:9000 -dsonar.login=9656c84090b2481db6ea97b6d14d87d546bff619
執(zhí)行命令后,就會在界面上自動新建了一個項目,并給出檢測結(jié)果:
sonar
提供了許多指標(biāo)如測試覆蓋率、復(fù)雜度等,這能大大幫助我們寫出更好的代碼:
4 總結(jié)
sonarqube
功能強大,是devops
的重要工具之一,需要了解和掌握。
到此這篇關(guān)于docker搭建代碼檢測平臺sonarqube并檢測maven項目的文章就介紹到這了,更多相關(guān)docker搭建代碼檢測平臺sonarqube并檢測maven項目內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://www.cnblogs.com/larrydpk/archive/2020/05/20/12920566.html