如何對(duì)SonarQube代碼質(zhì)量檢測(cè)整合,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),靖安企業(yè)網(wǎng)站建設(shè),靖安品牌網(wǎng)站建設(shè),網(wǎng)站定制,靖安網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,靖安網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
SonarQube是一種自動(dòng)代碼審查工具,用于檢測(cè)代碼中的錯(cuò)誤,漏洞和代碼異味。它可以與您現(xiàn)有的工作流程集成,以便在項(xiàng)目分支和拉取請(qǐng)求之間進(jìn)行連續(xù)的代碼檢查。
連續(xù)代碼檢查,sonar可以單獨(dú)使用Maven
、Gradle
推送代碼檢查,當(dāng)然也可以在ci引擎進(jìn)行代碼自動(dòng)檢查,如: Jenkins
、Git
。
安裝
為了快速啟動(dòng)sonarqube
實(shí)例,我們采用docker的方式。
sonarqube
默認(rèn)為英文版的,檢查規(guī)則為自帶的,我們這里采用中文漢化,另外java
語言加入阿里p3c規(guī)則。
使用git克隆項(xiàng)目:
git clone https://github.com/purgeteam/sonarqube-start cd docker-start
sonar-docker-start.yml
模板如下:
# 漢化版+阿里p3c驗(yàn)證 version: "2" services: sonarqube: image: sonarqube ports: - "9000:9000" networks: - sonarnet environment: - sonar.jdbc.url=jdbc:postgresql://db:5432/sonar volumes: - sonarqube_conf:/opt/sonarqube/conf - sonarqube_data:/opt/sonarqube/data - sonarqube_extensions:/opt/sonarqube/extensions - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins - ./plugin/rhinoceros/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar:/opt/sonarqube/extensions/plugins/sonar-pmd-plugin-3.2.0-SNAPSHOT.jar - ./plugin/sonar-l10n-zh-plugin-1.16.jar:/opt/sonarqube/extensions/plugins/sonar-l10n-zh-plugin-1.16.jar db: image: postgres ports: - "5432:5432" networks: - sonarnet environment: - POSTGRES_USER=sonar - POSTGRES_PASSWORD=sonar volumes: - ./postgres/postgresql:/var/lib/postgresql - ./postgres/postgresql_data:/var/lib/postgresql/data networks: sonarnet: driver: bridge volumes: sonarqube_conf: sonarqube_data: sonarqube_extensions: sonarqube_bundled-plugins: postgresql: postgresql_data:
使用docker-compose啟動(dòng)
docker-compose -d sonar-docker-start.yml up
默認(rèn)會(huì)吧插件掛載進(jìn)容器內(nèi)部。
啟動(dòng)ok,查看控制臺(tái)進(jìn)行訪問localhost:9000
,默認(rèn)賬號(hào)密碼:admin/admin
。
默認(rèn)規(guī)則配置
雖然已經(jīng)集成了阿里P3C,但是使用的還是默認(rèn)規(guī)則,這里我們需要設(shè)置為指定規(guī)則。
以admin賬號(hào)登陸
打開 質(zhì)量配置profiles
頁,點(diǎn)擊右上方的創(chuàng)建
按鈕,創(chuàng)建 p3c profiles
首次創(chuàng)建會(huì)跳轉(zhuǎn)到代碼規(guī)則配置頁面,剛新建的 profile 是沒有激活任何規(guī)則的,需要手動(dòng)激活
我們需要為剛創(chuàng)建的 p3c profile 激活 p3c 規(guī)則,點(diǎn)擊【激活更多規(guī)則】
跳轉(zhuǎn)到激活頁面,搜索p3c,如圖,都是以[p3c]
開頭的規(guī)則。
批量修改->活動(dòng) p3c -> 應(yīng)用 -> 成功
綁定規(guī)則成功后基本完成,我們返回質(zhì)量配置
,在java
選擇剛設(shè)置的p3c
設(shè)置為默認(rèn)。
配置阿里P3C已經(jīng)完成。
sonarqube
可以使用多種方式進(jìn)行代碼上傳檢查。 我們使用簡(jiǎn)單的Maven
觸發(fā)代碼檢查。
添加插件
在項(xiàng)目pom
文件里添加sonar-maven-plugin
插件。
org.sonarsource.scanner.maven sonar-maven-plugin 3.6.0.1398
服務(wù)器相關(guān)配置:
需要將
修改為之前搭建的sonarqube
服務(wù)地址。
sonar true http://127.0.0.1:9000/
觸發(fā)檢查
pom
配置完成,先將代碼進(jìn)行構(gòu)建使用Maven
package
命令。
完成構(gòu)建執(zhí)行mvn sonar:sonar
命令,也可以使用idea
maven
可視化界面進(jìn)行操作。
運(yùn)行完成。
查看sonar報(bào)告
打開sonar
服務(wù)頁面127.0.0.1:9000
可以看到上傳的項(xiàng)目列表,選擇項(xiàng)目查看分析結(jié)果,項(xiàng)目健康狀態(tài)等信息。
問題里可以看到相關(guān)的代碼問題列表,打開單個(gè)則查看詳情。
當(dāng)然我們只是使用了簡(jiǎn)單的Maven
方式推送至SonarQube
服務(wù),當(dāng)然也可以在ci引擎進(jìn)行代碼自動(dòng)檢查。
關(guān)于如何對(duì)SonarQube代碼質(zhì)量檢測(cè)整合問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。