SonarQube7.7+sonar-scanner部署(小白零基礎(chǔ)教程,超細(xì)全流程)

1.0? ?簡(jiǎn)介

? ? ? ?SonarQube是一款用于代碼質(zhì)量管理的開(kāi)源工具,它主要用于管理源代碼的質(zhì)量。通過(guò)插件形式,可以支持眾多計(jì)算機(jī)語(yǔ)言,截止至目前,最新版本已更新至8.9;

? ? ? ?基于上次安裝的SonarQube8.8,實(shí)際運(yùn)行中,公司絕大部分項(xiàng)目不支持運(yùn)行在java11上,在同一臺(tái)PC上跑項(xiàng)目和SonarQube相對(duì)來(lái)說(shuō)比較麻煩(需要更換jdk配置或者項(xiàng)目運(yùn)行配置),故部署SonarQube7.7,支持運(yùn)行于jdk1.8上;

? ? ? ?建議用電腦瀏覽器打開(kāi),效果較好。

2.0? ?環(huán)境

? ? ? ?JDK環(huán)境:java1.8、SonarQube7.7工具、漢化包1.25、sonar-scanner工具(代碼掃描工具)、npp編輯器、node.js、MySQL5.7、Navicat for MySQL等。

3.0? ?部署流程

3.1.1? ? JDK環(huán)境

3.1.1.1? ? 檢查當(dāng)前電腦JDK環(huán)境

? ? ? ?在電腦桌面的左下角的搜索中輸入“cmd”,回車后彈出命令提示符窗口,輸入java –version命令,查看當(dāng)前電腦是否安裝了jdk。

查看jdk版本

3.1.1.2? ? 安裝jdk

? ? ? ?這里介紹的是免安裝版的jdk1.8,解壓jdk壓縮包后,開(kāi)始配置java環(huán)境變量,右鍵我的電腦,點(diǎn)擊屬性,進(jìn)入系統(tǒng)的設(shè)置頁(yè)面后,點(diǎn)擊高級(jí)系統(tǒng)設(shè)置,點(diǎn)擊環(huán)境變量,進(jìn)行系統(tǒng)環(huán)境變量的編輯。

系統(tǒng)變量編輯頁(yè)窗口

? ? ? ?新建環(huán)境變量,1.變量名:JAVA_HOME,變量值:jdk解壓縮地址;2.編輯變量path,新增值:jdk解壓縮地址\bin。

JAVA_HOME地址
Path地址

? ? ? ?環(huán)境變量配置完成后,進(jìn)入cmd命令,輸入java version,出現(xiàn)下圖信息,即java1.8環(huán)境配置完成。

查看jdk版本

3.1.2? ? 數(shù)據(jù)庫(kù)配置

? ? ? ?SonarQube7.7需要連接對(duì)應(yīng)的MySQL數(shù)據(jù)庫(kù),MySQL安裝可以參考下方鏈接:

? ? ? ?https://blog.csdn.net/qq_39052339/article/details/99765471

? ? ? ?安裝完mysql后,可驗(yàn)證是否安裝成功,打開(kāi)cmd命令,輸入mysql –u root –p,輸入對(duì)應(yīng)的root用戶的密碼,登錄對(duì)應(yīng)的數(shù)據(jù)庫(kù)中。

MySQL登錄

3.1.2.1? ? MySQL配置(一)

? ? ? ?方法一:使用root登錄數(shù)據(jù)庫(kù)后,開(kāi)始數(shù)據(jù)庫(kù)配置。

? ? ? ?CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;? #創(chuàng)建sonar數(shù)據(jù)庫(kù)

? ? ? ?CREATE USER 'sonar' IDENTIFIED BY 'sonar';? #創(chuàng)建sonar用戶

? ? ? ?GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';? #sonar設(shè)置權(quán)限

? ? ? ?GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';? #給sonar設(shè)置對(duì)應(yīng)的密碼

? ? ? ?FLUSH PRIVILEGES;? #權(quán)限刷新

3.1.2.2? ? MySQL配置(二)

? ? ? ?方法二:解壓Navicat for MySQL,通過(guò)該數(shù)據(jù)庫(kù)管理工具來(lái)實(shí)現(xiàn)相關(guān)的數(shù)據(jù)庫(kù)配置:

? ? ? ?右鍵本地localhost連接,新建數(shù)據(jù)庫(kù),輸入數(shù)據(jù)庫(kù)名稱sonar,設(shè)置utf8字符集。

創(chuàng)建sonar數(shù)據(jù)庫(kù)

3.1.2.3? ? MySQL用戶、權(quán)限配置

? ? ? ?點(diǎn)擊上方的用戶,點(diǎn)擊新建用戶,輸入用戶名:sonar,主機(jī):localhost,密碼/確認(rèn)密碼:sonar,輸入完畢后,進(jìn)行保存。

新增sonar用戶

? ? ? ?接下來(lái)設(shè)置對(duì)應(yīng)的權(quán)限,點(diǎn)擊權(quán)限管理員,選擇sonar數(shù)據(jù)庫(kù),進(jìn)行權(quán)限添加操作,勾選sonar數(shù)據(jù)庫(kù),勾選授予右側(cè)所有權(quán)限,勾選完畢后點(diǎn)擊確定,完成權(quán)限配置。

權(quán)限配置
選擇對(duì)應(yīng)的人員
配置權(quán)限

3.1.3? ? SonarQube7.7部署漢化

3.1.3.1? ? 配置SonarQube環(huán)境變量

? ? ? ?解壓SonarQube7.7壓縮包后,開(kāi)始配置環(huán)境變量,編輯變量path,新增值:SonarQube解壓地址\bin。

解壓bin目錄

3.1.3.2? ? 啟動(dòng)SonarQube

? ? ? ?進(jìn)入解壓后的bin目錄,點(diǎn)擊windows-x86-64,雙擊StartSonar.bat,啟動(dòng)服務(wù)。(① 如果期間有彈出相關(guān)的防火墻提示,選中允許即可;② 啟動(dòng)服務(wù)后,即使關(guān)閉運(yùn)行窗口,服務(wù)仍開(kāi)著,如需關(guān)閉整個(gè)服務(wù),需要去任務(wù)管理器關(guān)閉對(duì)應(yīng)進(jìn)程)

啟動(dòng)文件

? ? ? ?啟動(dòng)完成后,在瀏覽器輸入http://localhost:9000,會(huì)進(jìn)入如下頁(yè)面,默認(rèn)賬號(hào)密碼均為admin。(如果提示修改密碼,按照提示修改即可)

登錄頁(yè)面

3.1.3.3? ? SonarQube漢化

? ? ? ?首先要知道獲取到對(duì)應(yīng)SonarQube版本的漢化包,訪問(wèn)下方鏈接,https://github.com/xuhuisheng/sonar-l10n-zh,下拉頁(yè)面可查看對(duì)應(yīng)的版本信息。

版本兼容列表

? ? ? ?訪問(wèn)下方鏈接,下載對(duì)應(yīng)的jar包,修改鏈接后的1.27,可跳轉(zhuǎn)至其他版本;https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.27

1.27版本jar包下載

? ? ? ?關(guān)閉SonarQube服務(wù)(快捷鍵Ctrl+Alt+Delete,打開(kāi)任務(wù)管理器,關(guān)閉對(duì)應(yīng)的服務(wù),見(jiàn)下圖),關(guān)閉后將漢化包置于下方文件夾中,重新啟動(dòng)SonarQube服務(wù),漢化完成。

SonarQube服務(wù)
漢化包存放地址
漢化后界面

?3.1.3.4? ?配置文件修改

? ? ? ?接下來(lái)進(jìn)行SonarQube配置,打開(kāi)解壓目錄,進(jìn)入\sonarqube-7.7\conf文件夾,修改sonar.properties配置文件。(在執(zhí)行該步驟前,先安裝npp.7.7.1.Installer.x64.exe,便于文件的編輯,雙擊該文件進(jìn)行安裝即可)

配置文件位置
編輯內(nèi)容

? ? ? ?源碼如下:

? ? ? ?#----- 連接數(shù)據(jù)庫(kù) ? ? ? ?sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar??useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false? ? ?? ??

? ? ? ?sonar.jdbc.username=sonar

? ? ? ?sonar.jdbc.password=sonar

? ? ? ?#-----Default source code encoding?

? ? ? ?sonar.sorceEncoding=UTF-8

? ? ? ?#-----SonarQube登錄的賬號(hào)密碼?

? ? ? ?sonar.login=admin

? ? ? ?sonar.password=admin

3.1.3.5? ?獲取相關(guān)項(xiàng)目的值(用于后續(xù)Sonar-Scanner的掃描)

? ? ? ?漢化完成后,進(jìn)入對(duì)應(yīng)的系統(tǒng)中,點(diǎn)擊右上角的“新建項(xiàng)目”,輸入對(duì)應(yīng)的項(xiàng)目名稱sonar-l10n-zh-master。(掃描項(xiàng)目源碼)

新建被測(cè)項(xiàng)目
設(shè)置項(xiàng)目名稱

? ? ? ?設(shè)置成功后,即可創(chuàng)建對(duì)應(yīng)的令牌,令牌的值在后續(xù)的Sonar-Scanner中相關(guān)配置會(huì)用到,包括對(duì)應(yīng)的項(xiàng)目標(biāo)識(shí),令牌名稱輸入“admin”(名稱自己設(shè)置),點(diǎn)擊右側(cè)的“創(chuàng)建”按鈕,創(chuàng)建令牌完成,創(chuàng)建完畢后,復(fù)制下方的令牌的值,令牌值為隨機(jī)生成,故本安裝手冊(cè)中令牌值在新的部署環(huán)境中無(wú)效,不通用。

設(shè)置令牌名稱
admin對(duì)應(yīng)的令牌

3.1.4? ? Sonar-Scanner配置

3.1.4.1? ? 配置環(huán)境變量

? ? ? ?解壓sonar-scanner壓縮包,解壓完成后,進(jìn)行環(huán)境變量配置,新建環(huán)境變量,1.變量名:SONAR_RUNNER_HOME,變量值:sonar-scanner解壓路徑;2.編輯變量path,新增值:%SONAR_RUNNER_HOME\bin 或sonar-scanner解壓路徑\bin。

解壓壓縮包
SONAR_RUNNER_HOME配置
path配置

? ? ? ?環(huán)境變量配置完成后,cmd命令,輸入sonar-scanner,回車,出現(xiàn)下方信息后,環(huán)境變量配置完成。

驗(yàn)證配置情況

3.1.4.2? ? Sonar-Scanner配置

? ? ? ?接下來(lái)進(jìn)行sonar-scanner配置,打開(kāi)解壓目錄,進(jìn)入\sonar-scanner\conf文件夾,修改sonar-scanner.properties配置文件。

Sonar-Scanner配置文件修改
修改內(nèi)容

? ? ? ?源碼如下:

? ? ? ?#-----

? ? ? ?SonarQube服務(wù)的鏈接

? ? ? ?sonar.host.url=http://localhost:9000

? ? ? ?#-----

? ? ? ?SonarQube服務(wù)的令牌

? ? ? ?sonar.login=fb1d09769aea83e6057a6e0d053f2970e69913fb(該值需替換為3.1.2.4中的admin的值)

? ? ? ?#-----Default source code encoding

? ? ? ?sonar.sourceEncoding=UTF-8

3.1.4.3? ? 被測(cè)項(xiàng)目配置

? ? ? ?在被測(cè)項(xiàng)目的根目錄,添加sonar-project.properties配置文件,配置文件補(bǔ)充內(nèi)容如下。

被測(cè)項(xiàng)目配置

? ? ? ?源碼如下:

? ? ? ?#------ 被檢測(cè)項(xiàng)目的名稱

? ? ? ?sonar.projectKey=sonar-l10n-zh-master

? ? ? ?sonar.projectName=sonar-l10n-zh-master

? ? ? ?#------ 被檢測(cè)源文件所在目錄,.代表的是當(dāng)前目錄

? ? ? ?sonar.sources=.

? ? ? ?sonar.java.binaries=./target/classes

? ? ? ??sonar.sourceEncoding=UTF-8

3.1.5? ? 代碼掃描

? ? ? ?進(jìn)入目標(biāo)代碼根目錄,點(diǎn)擊對(duì)應(yīng)的路徑,cmd進(jìn)入定位到當(dāng)前目錄,具體執(zhí)行步驟如下。

被測(cè)項(xiàng)目根目錄
對(duì)應(yīng)的命令窗口

? ? ? ?輸入命令如下:sonar-scanner,進(jìn)行當(dāng)前代碼掃描操作。(注意:掃描前,需要開(kāi)啟SonarQube服務(wù),即雙擊StartSonar.bat進(jìn)行啟動(dòng),中途若彈出防火墻提示,允許即可)

掃描執(zhí)行命令

? ? ? ?掃描完成后,自動(dòng)提交至SonarQube中對(duì)應(yīng)的項(xiàng)目中進(jìn)行后臺(tái)分析,分析后,即可查看對(duì)應(yīng)的報(bào)告信息,其他項(xiàng)目掃描也是按照這種方法。

掃描成功
查看掃描結(jié)果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 在一個(gè)團(tuán)隊(duì)開(kāi)發(fā)中,每個(gè)人的代碼質(zhì)量良莠不齊,因此我們需要把握好代碼質(zhì)量的關(guān)。這個(gè)往往決定這個(gè)團(tuán)隊(duì)的開(kāi)發(fā)維護(hù)效...
    HF_K閱讀 2,244評(píng)論 0 1
  • sonarqube7.3部署 環(huán)境 配置JDK環(huán)境變量 我們使用sonar用戶啟動(dòng)sonar,所以在sonar用戶...
    于飛_d529閱讀 492評(píng)論 0 0
  • CentOS MySQL SonarQube SonarQube Scanner 針對(duì) Jacoco + Jenk...
    納愛(ài)斯閱讀 20,447評(píng)論 6 9
  • 本文重點(diǎn)說(shuō)明sonarqube的使用和搭建,以及集成到Jenkins,從因到果進(jìn)行詳細(xì)的說(shuō)明。gitLab+Jen...
    GeekSpring閱讀 26,206評(píng)論 1 7
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過(guò)就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,567評(píng)論 2 7

友情鏈接更多精彩內(nèi)容