您好,登錄后才能下訂單哦!
Sonar 介紹
Sonar 是一個用于代碼質量管理的開放平臺。通過插件機制, Sonar 可以集成不同的測試工
具,以及持續集成工具。與持續集成工具(例如 Hudson/Jenkins 等)不同, Sonar
并不是簡單地把不同的代碼檢查工具結果(例如 FindBugs, PMD 等)直接顯示在 Web 頁面上,而
是通過不同的插件對這些結果進行再加工處理,通過量化的方式度量代碼質量的變化,從而可以方
便地對不同規模和種類的工程進行代碼質量管理。
在對其他工具的支持方面, Sonar 不僅提供了對 IDE 的支持,可以在 Eclipse 和 IntelliJ
IDEA 這些工具里聯機查看結果;同時 Sonar 還對大量的持續集成工具提供了接口支持,可以很方
便地在持續集成中使用 Sonar。
此外, Sonar 的插件還可以對 Java 以外的其他編程語言提供支持,對國際化以及報告文檔化
也有良好的支持。
Sonar 的相關下載和文檔可以在下面的鏈接中找到: http://www.sonarqube.org/downloads/。
需要注意最新版的 Sonar 需要至少 JDK 1.8 及以上版本。
上篇文章我們已經可以成功的使用 git 進行拉去, Sonar 的功能就是來檢查代碼是否有 BUG。除了
檢查代碼是否有 bug 還有其他的功能,比如說:你的代碼注釋率是多少,代碼有一些建議,編寫語
法的建議。所以我們叫質量管理
Sonar 還可以給代碼打分,并且引用了技術宅的功能(告訴你有很多地方沒改)
Sonar 部署
89 cd /usr/src/sonar
90 rz 上傳所需軟件包
軟件包我們通過 wget 或者下載, rz 上傳到服務器
#軟件包下載: 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/ 鏈接命令目錄
準備 Sonar 數據庫
如果沒有數據庫請執行 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 設置開機自啟
登錄數據庫并操作
110 mysqladmin -u root password 123 設置MySQL數據庫密碼
可以看到這里有問題。解決:
111 grep password /var/log/mysqld.log
紅框中的就是密碼
112 mysql -u root -p'yq%9XsyE:r&g' 登陸數據庫
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; 創建數據庫
grant all on sonar.* to 'sonar'@'%' identified by 'Sonar@123.com'; 設置授權用戶
grant all on sonar.* to 'sonar'@'localhost' identified by 'Sonar@123.com'; 設置授權用戶
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 訪問數據庫驅動(可選)
默認情況 Sonar 有自帶的嵌入的數據庫,那么你如果使用類是 Oracle 數據庫,必須手動復制驅動類到${SONAR_HOME}/extensions/jdbc-driver/oracle/目錄下,其它支持的數據庫默認提供了驅動。其它數據庫的配置可以參考官方文檔:
http://docs.sonarqube.org/display/HOME/SonarQube+Platform
啟動 Sonar并查看端口
你可以在 Sonar 的配置文件來配置 Sonar Web 監聽的 IP 地址和端口,默認是 9000 端口。
118 sonar.sh start 啟動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/ 進入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目錄需要重啟才會生效
134 sonar.sh restart 重啟sonar
135 netstat -anpt | grep 9000 查看端口
生效后如下圖:
140 cd /usr/src/sonar/ 進入剛剛上傳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 移動解壓文件到sonar宿主目錄
143 cd /usr/local/sonar-scanner/ 進入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 關聯起來
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 #數據庫賬號
sonar.jdbc.password=Sonar@123.com #數據庫密碼
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance #數據庫連接地址
#打開注釋即可
我們現在需要找一個代碼進行分析。
sonar 插件提供了一個代碼的庫
github:https://github.com/SonarSource/sonar-examples
我們下載軟件包: https://github.com/SonarSource/sonar-examples/archive/master.zip
解壓
150 unzip testalyzer-master.zip 解壓測試文件
151 cd /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests 進入測試文件
163 sonar-scanner 測試代碼文件
提示: 我們什么都不指定就會在當面目錄下掃描 sonar-project.properties 文件,根據配置文件進行掃描工作。掃描之后我們在 web 界面上就可以看到代碼的掃描結果這里的名字,版本 都是在 sonar-project.properties 文件中定義的
質量閾幫我們設定好一個閾值,超過相應的閾值就算有 bug
測試第二個文件
cd /usr/src/sonar/testalyzer-master/projects/languages/javascript/javascript-sonar-runner
sonar-scanner 測試
為了讓 jenkins 可以在構建項目的時候執行 sonar,所以我們需要在 jenkins 上安裝插件
現在就可以進行配置,讓 jenkins 和 sonar 結合在一起。這樣我們構建項目的時候就會進行代碼檢測
http://192.168.1.40:8081/ jdk安裝插件SonarQube Scanner. Gerrit Tr igge 需要一個一個來
安裝完畢之后:現在就可以進行配置,讓 jenkins 和 sonar 結合在一起。這樣我們構建項目的時候就會進行代碼檢測
系統管理---系統設置---- add sonarqube server---name隨意寫 url sonarqube的路徑http://192.168.1.40: 9000
點擊保存
系統管理---全局工具配置---新增SonarQube Scanner--- 取消勾選自動安裝----name隨意寫--- SONAR_RUNNER_HOME /usr/local/sonar- scanner
配置
配置上次課的web- demo項目----構建--- Execute SonarQube Scanner ----Analysis properties 內容在cat /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests/sonar-project.properties(每個人安裝目錄不一樣)
編輯我們的項目,選擇最下放。找到構建
cat /usr/src/sonar/testalyzer-master/projects/languages/php/php-sonar-runner-unit-tests/sonar-project.properties
填寫完畢后,我們點擊保存
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/ 進入xgp項目
221 git add * 上傳到緩存
222 git commit -m "sonar" 上傳到版板庫
223 git push origin master 上傳到遠程庫
提示: 此時的 SonarQube 是無法點擊的
瀏覽器JDK查看
點擊 Console Output 可以查看構建輸出的內容
#提示:只要沒有 error 就可以
Gielab查看并修改名字
再次修改一下并把密鑰修改一下
在sonar上查看添加了一個xgpa
登陸QQ郵箱獲取授權碼
1、需要開啟 POPE3/SMTP 服務
2、在 jenkins 上配置的密碼我們需要點擊生成授權碼進行使用
回到jdk
系統管理---系統設置---Jenkins Location---- 系統管理員郵件地址
-----郵件通知---SMTP服務器smtp . qq. com
---用戶默認郵件后綴@qq. com
---勾選使用smtp認證
用戶名密碼 (生成的授權碼)
---勾選使用ssl
--- smtp端口 465
---勾選通過發送測試郵件測試配置
配置web- demo項目---構建后操作- --添加E -mail Notification---Recipient收件 人地址
---- Editable Email Notification---Project From填寫項目名稱----Project Recipient Lis t收件人郵箱地址-
Triggers---add Triggers----always-- Send To只保留Recipient List
測試:關閉git(失敗郵件)
gitlab-ctl stop
測試:成功郵件
啟動gitlab-ctl start
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。