佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Docker搭建代碼檢測平臺SonarQube并檢測maven項(xiàng)目的流程

Docker搭建代碼檢測平臺SonarQube并檢測maven項(xiàng)目的流程

熱門標(biāo)簽:美圖手機(jī) 阿里云 硅谷的囚徒呼叫中心 智能手機(jī) 網(wǎng)站建設(shè) 檢查注冊表項(xiàng) 使用U盤裝系統(tǒng) 百度競價(jià)點(diǎn)擊價(jià)格的計(jì)算公式

1 前言

良好的代碼習(xí)慣是一個(gè)優(yōu)秀程序員應(yīng)該具備的品質(zhì),但靠人的習(xí)慣與記憶來保證代碼質(zhì)量,始終不是一件靠譜的事。在計(jì)算機(jī)行業(yè)應(yīng)該深知,只要是人為的,都會(huì)有操作風(fēng)險(xiǎn)。本文講解如何通過Docker搭建代碼檢測平臺SonarQube,并使用它來檢測maven項(xiàng)目的代碼。

2 Docker安裝SonarQube

2.1 安裝

通過Docker安裝,方便快捷,不需要時(shí)直接刪掉容器和鏡像就好了。

# 拉取Sonar鏡像
docker pull sonarqube:8.3.1-community
# 運(yùn)行實(shí)例
docker run --name sonarqube -p 9000:9000 -d sonarqube:8.3.1-community

接著訪問:http://localhost:9000/ 就可以了,默認(rèn)管理員用戶和密碼為:admin/admin。

這里選擇免費(fèi)的社區(qū)版Community,另外還有Developer、Enterprise等收費(fèi)版本,功能更強(qiáng)大,具體差別如下:

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

一般我們會(huì)自己啟動(dòng)一個(gè)數(shù)據(jù)庫如Oracle、MySQLPostgreSQL。相關(guān)系統(tǒng)信息可以在Administration-System查看,我們不指定的話,默認(rèn)是使用內(nèi)嵌的H2數(shù)據(jù)庫。如果要指定其它數(shù)據(jù)庫,啟動(dòng)Docker時(shí)需要指定:

-e SONARQUBE_JDBC_USERNAME="xxx" \
-e SONARQUBE_JDBC_PASSWORD="***" \
-e SONARQUBE_JDBC_URL="jdbc:mysql://xxx"

使用H2數(shù)據(jù)庫有會(huì)以下限制:

內(nèi)嵌數(shù)據(jù)庫只能用于測試場景。內(nèi)嵌數(shù)據(jù)庫無法擴(kuò)展,也無法升級到新版本的SonarQube,并且不能支持將你的數(shù)據(jù)遷移至其他數(shù)據(jù)庫引擎。

所以建議實(shí)際使用時(shí),不要使用內(nèi)嵌的H2數(shù)據(jù)庫。

2.3 進(jìn)入容器

通過命令:

$ docker exec -it 容器ID bash

bash-5.0# ls
COPYING  bin   conf   data   elasticsearch extensions  lib   logs   temp   web
bash-5.0# 

可以進(jìn)入SonarQube容器。在目錄/opt/sonarqube可以查看配置文件、插件、數(shù)據(jù)文件和日志文件等,實(shí)際使用應(yīng)該映射到宿主機(jī)的目錄上,這樣重新啟動(dòng)一個(gè)實(shí)例,數(shù)據(jù)和配置都還在。

2.4 安裝插件

SonarQube提供了強(qiáng)大的插件管理功能,以中文語言包為示例,講解如何安裝插件:

Administration-Marketplace-Plugins,在搜索框輸入Chinese就可以選擇安裝了。

當(dāng)狀態(tài)顯示為Install Pending時(shí),說明插件安裝完成,點(diǎn)擊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并暴露密碼并不是一個(gè)好的習(xí)慣,可以通過配置-權(quán)限-用戶來創(chuàng)建用戶,并創(chuàng)建令牌。

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

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

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

執(zhí)行命令后,就會(huì)在界面上自動(dòng)新建了一個(gè)項(xiàng)目,并給出檢測結(jié)果:

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

4 總結(jié)

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

到此這篇關(guān)于Docker搭建代碼檢測平臺SonarQube并檢測maven項(xiàng)目的文章就介紹到這了,更多相關(guān)Docker搭建代碼檢測平臺SonarQube并檢測maven項(xiàng)目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:煙臺 湖北 黃山 懷化 湘潭 通遼 山南 賀州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Docker搭建代碼檢測平臺SonarQube并檢測maven項(xiàng)目的流程》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    衡山县| 楚雄市| 丹棱县| 新营市| 广东省| 曲松县| 高阳县| 顺义区| 房山区| 东方市| 温州市| 河北区| 漯河市| 河东区| 普格县| 长岭县| 桓台县| 临猗县| 隆安县| 当雄县| 西青区| 卢龙县| 桓台县| 重庆市| 武义县| 临高县| 赫章县| 商城县| 临清市| 五河县| 和顺县| 托克托县| 黔东| 禄丰县| 汉阴县| 宁海县| 额敏县| 安吉县| 射洪县| 东丽区| 登封市|