溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Docker如何搭建代碼檢測平臺SonarQube并檢測maven項目

發(fā)布時間:2020-07-23 11:23:21 來源:億速云 閱讀:336 作者:小豬 欄目:服務(wù)器

小編這次要給大家分享的是Docker如何搭建代碼檢測平臺SonarQube并檢測maven項目,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

1 前言

良好的代碼習(xí)慣是一個優(yōu)秀程序員應(yīng)該具備的品質(zhì),但靠人的習(xí)慣與記憶來保證代碼質(zhì)量,始終不是一件靠譜的事。在計算機行業(yè)應(yīng)該深知,只要是人為的,都會有操作風(fēng)險。本文講解如何通過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

這里選擇免費的社區(qū)版Community,另外還有DeveloperEnterprise等收費版本,功能更強大,具體差別如下:

Docker如何搭建代碼檢測平臺SonarQube并檢測maven項目

2.2 指定數(shù)據(jù)庫

一般我們會自己啟動一個數(shù)據(jù)庫如Oracle、MySQLPostgreSQL。相關(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 進入容器

通過命令:

$ 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就可以選擇安裝了。

Docker如何搭建代碼檢測平臺SonarQube并檢測maven項目

當(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)建令牌。

Docker如何搭建代碼檢測平臺SonarQube并檢測maven項目

復(fù)制令牌:9656c84090b2481db6ea97b6d14d87d546bff619。

這樣,就可以通過令牌來操作了:

mvn clean verify sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=9656c84090b2481db6ea97b6d14d87d546bff619

執(zhí)行命令后,就會在界面上自動新建了一個項目,并給出檢測結(jié)果:

Docker如何搭建代碼檢測平臺SonarQube并檢測maven項目

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

Docker如何搭建代碼檢測平臺SonarQube并檢測maven項目

4 總結(jié)

SonarQube功能強大,是DevOps的重要工具之一,需要了解和掌握。

看完這篇關(guān)于Docker如何搭建代碼檢測平臺SonarQube并檢測maven項目的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI