Sonar 介紹
Sonar 是一個(gè)用于代碼質(zhì)量管理的開放平臺(tái)。通過插件機(jī)制, Sonar 可以集成不同的測(cè)試工
具,以及持續(xù)集成工具。與持續(xù)集成工具(例如 Hudson/Jenkins 等)不同, Sonar
并不是簡(jiǎn)單地把不同的代碼檢查工具結(jié)果(例如 FindBugs, PMD 等)直接顯示在 Web 頁面上,而
是通過不同的插件對(duì)這些結(jié)果進(jìn)行再加工處理,通過量化的方式度量代碼質(zhì)量的變化,從而可以方
便地對(duì)不同規(guī)模和種類的工程進(jìn)行代碼質(zhì)量管理。
在對(duì)其他工具的支持方面, Sonar 不僅提供了對(duì) IDE 的支持,可以在 Eclipse 和 IntelliJ
IDEA 這些工具里聯(lián)機(jī)查看結(jié)果;同時(shí) Sonar 還對(duì)大量的持續(xù)集成工具提供了接口支持,可以很方
便地在持續(xù)集成中使用 Sonar。
此外, Sonar 的插件還可以對(duì) Java 以外的其他編程語言提供支持,對(duì)國(guó)際化以及報(bào)告文檔化
也有良好的支持。
站在用戶的角度思考問題,與客戶深入溝通,找到灌南網(wǎng)站設(shè)計(jì)與灌南網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋灌南地區(qū)。
Sonar 的相關(guān)下載和文檔可以在下面的鏈接中找到: http://www.sonarqube.org/downloads/。
需要注意最新版的 Sonar 需要至少 JDK 1.8 及以上版本。
上篇文章我們已經(jīng)可以成功的使用 git 進(jìn)行拉去, Sonar 的功能就是來檢查代碼是否有 BUG。除了
檢查代碼是否有 bug 還有其他的功能,比如說:你的代碼注釋率是多少,代碼有一些建議,編寫語
法的建議。所以我們叫質(zhì)量管理
Sonar 還可以給代碼打分,并且引用了技術(shù)宅的功能(告訴你有很多地方?jīng)]改)
Sonar 部署
89 cd /usr/src/sonar
90 rz 上傳所需軟件包
軟件包我們通過 wget 或者下載, rz 上傳到服務(wù)器
#軟件包下載: https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.zip
95 unzip sonarqube-5.6.zip 解壓軟件包
96 mv sonarqube-5.6 /usr/local/sonarqube
97 cd /usr/local/sonarqube/
98 ln -s /usr/local/sonarqube/bin/linux-x86-64/sonar.sh /usr/local/bin/ 鏈接命令目錄
準(zhǔn)備 Sonar 數(shù)據(jù)庫
如果沒有數(shù)據(jù)庫請(qǐng)執(zhí)行 yum install -y mariadb mariadb-server
102 cd /usr/src/ MySQL5.7RPM
103 rz 上傳所需rpm包
105 cd MySQl5.7RPM/
107 ls
108 yum -y localinstall mysql-community-* 安裝此目錄的MySQL包
109 systemctl start mysqld 開啟mysql
100 systemctl enable mariadb 設(shè)置開機(jī)自啟
登錄數(shù)據(jù)庫并操作
110 mysqladmin -u root password 123 設(shè)置MySQL數(shù)據(jù)庫密碼
可以看到這里有問題。解決:
111 grep password /var/log/mysqld.log
紅框中的就是密碼
112 mysql -u root -p'yq%9XsyE:r&g' 登陸數(shù)據(jù)庫
alter user 'root'@'localhost' identified by '123.com'
alter user 'root'@'localhost' identified by 'Xgp@123.com';
create database sonar character set utf8 collate utf8_general_ci; 創(chuàng)建數(shù)據(jù)庫
grant all on sonar.* to 'sonar'@'%' identified by 'Sonar@123.com'; 設(shè)置授權(quán)用戶
grant all on sonar.* to 'sonar'@'localhost' identified by 'Sonar@123.com'; 設(shè)置授權(quán)用戶
113 cd /usr/local/sonarqube/bin/
115 ls
116 ln -s /usr/local/sonarqube/bin/linux-x86-64/sonar.sh /usr/local/bin/ 鏈接命令目錄
117 vim conf/sonar.properties 修改sonar配置文件
sonar.jdbc.username=sonar #14用戶名
sonar.jdbc.password=Sonar@123.com #15密碼
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance #23去注釋
sonar.web.host=0.0.0.0 #99去注釋
sonar.web.port=9000 #106去注釋
配置 Java 訪問數(shù)據(jù)庫驅(qū)動(dòng)(可選)
默認(rèn)情況 Sonar 有自帶的嵌入的數(shù)據(jù)庫,那么你如果使用類是 Oracle 數(shù)據(jù)庫,必須手動(dòng)復(fù)制驅(qū)動(dòng)類到${SONAR_HOME}/extensions/jdbc-driver/oracle/目錄下,其它支持的數(shù)據(jù)庫默認(rèn)提供了驅(qū)動(dòng)。其它數(shù)據(jù)庫的配置可以參考官方文檔:
http://docs.sonarqube.org/display/HOME/SonarQube+Platform
啟動(dòng) Sonar并查看端口
你可以在 Sonar 的配置文件來配置 Sonar Web 監(jiān)聽的 IP 地址和端口,默認(rèn)是 9000 端口。
118 sonar.sh start 啟動(dòng)sonar
119 netstat -anpt | grep 9000 查看端口
120 tailf /usr/local/sonarqube/logs/sonar.log 查看sonar日志
#端口是 9000 哦!
Web 登陸: IP:9000
提示:
sonar 跟 jenkins 類似,也是以插件為主
sonar 安裝插件有 2 種方式:第一種將插件下載完存放在 sonar 的插件目錄,第二種使用 web 界面來使用安裝存放插件路徑[/usr/local/sonarqube/extensions/plugins/]
安裝中文插件
登陸:用戶名: admin 密碼: admin
sonar安裝‘中文’和php插件
132 cd /usr/local/sonarqube/extensions/plugins/ 進(jìn)入sonar宿主目錄
133 cp /usr/src/sonar/sonar-l10n-zh-plugin-1.11.jar ./ 拷貝中文插件到sonar目錄
134 cp /usr/src/sonar/sonar-php-plugin-2.9-RC1.jar ./ 拷貝php插件到sonar目錄需要重啟才會(huì)生效
134 sonar.sh restart 重啟sonar
135 netstat -anpt | grep 9000 查看端口
生效后如下圖:
140 cd /usr/src/sonar/ 進(jìn)入剛剛上傳sonar包的目錄
141 unzip sonar-scanner-cli-3.3.0.1492-linux.zip 解壓掃描插件
142 mv sonar-scanner-3.3.0.1492-linux/ /usr/local/sonar-scanner 移動(dòng)解壓文件到sonar宿主目錄
143 cd /usr/local/sonar-scanner/ 進(jìn)入sonar宿主目錄
145 ln -s /usr/local/sonar-scanner/bin/sonar-scanner /usr/local/bin/ 鏈接命令目錄
146 ln -s /usr/local/sonar-scanner/bin/sonar-scanner /usr/bin/ 鏈接命令目錄
我們要將掃描器和 sonar 關(guān)聯(lián)起來
143 cd /usr/local/sonar-scanner/
144 vim conf/sonar-scanner.properties 修改sonar配置文件
sonar.host.url=http://localhost:9000 #去注釋 sonar 地址
sonar.sourceEncoding=UTF-8 #8去注釋 字符集
以下四行來自/usr/ldocal/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar #數(shù)據(jù)庫賬號(hào)
sonar.jdbc.password=Sonar@123.com #數(shù)據(jù)庫密碼
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance #數(shù)據(jù)庫連接地址
#打開注釋即可
我們現(xiàn)在需要找一個(gè)代碼進(jìn)行分析。
sonar 插件提供了一個(gè)代碼的庫
github:https://github.com/SonarSource/sonar-examples
我們下載軟件包: https://github.com/SonarSource/sonar-examples/archive/master.zip
解壓
150 unzip testalyzer-master.zip 解壓測(cè)試文件
151 cd /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests 進(jìn)入測(cè)試文件
163 sonar-scanner 測(cè)試代碼文件
提示: 我們什么都不指定就會(huì)在當(dāng)面目錄下掃描 sonar-project.properties 文件,根據(jù)配置文件進(jìn)行掃描工作。掃描之后我們?cè)?web 界面上就可以看到代碼的掃描結(jié)果這里的名字,版本 都是在 sonar-project.properties 文件中定義的
質(zhì)量閾幫我們?cè)O(shè)定好一個(gè)閾值,超過相應(yīng)的閾值就算有 bug
測(cè)試第二個(gè)文件
cd /usr/src/sonar/testalyzer-master/projects/languages/javascript/javascript-sonar-runner
sonar-scanner 測(cè)試
為了讓 jenkins 可以在構(gòu)建項(xiàng)目的時(shí)候執(zhí)行 sonar,所以我們需要在 jenkins 上安裝插件
現(xiàn)在就可以進(jìn)行配置,讓 jenkins 和 sonar 結(jié)合在一起。這樣我們構(gòu)建項(xiàng)目的時(shí)候就會(huì)進(jìn)行代碼檢測(cè)
http://192.168.1.40:8081/ jdk安裝插件SonarQube Scanner. Gerrit Tr igge 需要一個(gè)一個(gè)來
安裝完畢之后:現(xiàn)在就可以進(jìn)行配置,讓 jenkins 和 sonar 結(jié)合在一起。這樣我們構(gòu)建項(xiàng)目的時(shí)候就會(huì)進(jìn)行代碼檢測(cè)
系統(tǒng)管理---系統(tǒng)設(shè)置---- add sonarqube server---name隨意寫 url sonarqube的路徑http://192.168.1.40: 9000
點(diǎn)擊保存
系統(tǒng)管理---全局工具配置---新增SonarQube Scanner--- 取消勾選自動(dòng)安裝----name隨意寫--- SONAR_RUNNER_HOME /usr/local/sonar- scanner
配置
配置上次課的web- demo項(xiàng)目----構(gòu)建--- Execute SonarQube Scanner ----Analysis properties 內(nèi)容在cat /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests/sonar-project.properties(每個(gè)人安裝目錄不一樣)
編輯我們的項(xiàng)目,選擇最下放。找到構(gòu)建
cat /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests/sonar-project.properties
填寫完畢后,我們點(diǎn)擊保存
217 cd /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests
219 cp -r * /root/xgp-demo/
220 cd /root/xgp-demo/ 進(jìn)入xgp項(xiàng)目
221 git add * 上傳到緩存
222 git commit -m "sonar" 上傳到版板庫
223 git push origin master 上傳到遠(yuǎn)程庫
提示: 此時(shí)的 SonarQube 是無法點(diǎn)擊的
瀏覽器JDK查看
點(diǎn)擊 Console Output 可以查看構(gòu)建輸出的內(nèi)容
#提示:只要沒有 error 就可以
Gielab查看并修改名字
再次修改一下并把密鑰修改一下
在sonar上查看添加了一個(gè)xgpa
登陸QQ郵箱獲取授權(quán)碼
1、需要開啟 POPE3/SMTP 服務(wù)
2、在 jenkins 上配置的密碼我們需要點(diǎn)擊生成授權(quán)碼進(jìn)行使用
回到j(luò)dk
系統(tǒng)管理---系統(tǒng)設(shè)置---Jenkins Location---- 系統(tǒng)管理員郵件地址
-----郵件通知---SMTP服務(wù)器smtp . qq. com
---用戶默認(rèn)郵件后綴@qq. com
---勾選使用smtp認(rèn)證
用戶名密碼 (生成的授權(quán)碼)
---勾選使用ssl
--- smtp端口 465
---勾選通過發(fā)送測(cè)試郵件測(cè)試配置
配置web- demo項(xiàng)目---構(gòu)建后操作- --添加E -mail Notification---Recipient收件 人地址
---- Editable Email Notification---Project From填寫項(xiàng)目名稱----Project Recipient Lis t收件人郵箱地址-
Triggers---add Triggers----always-- Send To只保留Recipient List
測(cè)試:關(guān)閉git(失敗郵件)
gitlab-ctl stop
測(cè)試:成功郵件
啟動(dòng)gitlab-ctl start
本文標(biāo)題:jenkins代碼管理
URL地址:http://jinyejixie.com/article24/ijcgce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)、建站公司、商城網(wǎng)站、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)