一硫麻、SonarQube的介紹
1樊卓、SonarQube的介紹 :
SonarQube是一個管理代碼質(zhì)量的開放平臺。
可以從七個維度檢測代碼質(zhì)量(為什么要用SonarQube):
(1)? 復(fù)雜度分布(complexity) :代碼復(fù)雜度過高將難以理解浇辜、難以維護(hù)
(2)? 重復(fù)代碼(duplications) :程序中包含大量復(fù)制粘貼的代碼是質(zhì)量低下的表現(xiàn)
(3)? 單元測試(unit tests) :統(tǒng)計(jì)并展示單元測試覆蓋率
(4)? 編碼規(guī)范(coding rules) :通過Findbugs,PMD,CheckStyle等規(guī)范代碼編寫
(5)? 注釋(comments) :少了可讀性差唾戚,多了看起來費(fèi)勁
(6)? 潛在的Bug(potential bugs) :通過Findbugs,PMD,CheckStyle等檢測潛在的bug
(7)? 結(jié)構(gòu)與設(shè)計(jì)(architecture & design) :依賴、耦合等
Sonar 可以集成不同的測試工具叹坦、代碼分析工具立由、持續(xù)集成工具序厉、IDE弛房。
Sonar通過對代碼質(zhì)量分析結(jié)果數(shù)據(jù)進(jìn)行再加工處理,通過量化的方式來度量
代碼質(zhì)量的變化荷逞,從而可以方便地對工程進(jìn)行代碼質(zhì)量管理粹排。
支持的語言包括:Java、PHP顽耳、C#射富、C、Cobol限次、PL/SQL柴灯、Flex 等。
2懊亡、SonarQube平臺的組成:
(1) 數(shù)據(jù)庫:存放SonarQube的配置數(shù)據(jù)、代碼質(zhì)量的快照數(shù)據(jù)
(2) Web服務(wù):用于查看SonarQube的配置數(shù)據(jù)速警、代碼質(zhì)量的快照數(shù)據(jù)
(3) 分析器:對項(xiàng)目代碼進(jìn)行分析闷旧,生成質(zhì)量結(jié)果數(shù)據(jù)并存入數(shù)據(jù)庫中
(分析器有多種忙灼,我們選用 SonarQube Maven Plugin)
二该园、SonarQube的安裝
安裝環(huán)境要求說明:
http://docs.sonarqube.org/display/SONAR/Requirements
本教程安裝環(huán)境:
(1) CentOS 6.6
(2) Oracle JDK 7u72
(3) MySQL5.1
(4) SonarQube-4.5.4 (LTS)
安裝步驟:
http://docs.sonarqube.org/display/SONAR/Installing
(具體安裝步驟請參照安裝詳細(xì)步驟文檔和視頻教程)
IP: 192.168.4.221
環(huán)境 : CentOS 6.6 帅韧、 JDK7 忽舟、 MySQL5.1? 、 SonarQ ube- - 4.5.4 (LTS)
root? 用 戶操作
準(zhǔn)備工作:已安裝 JDK7 并配置好了環(huán)境變量
1刁品、安裝MySQL5 .1
( 可參 考 前面 面 N SVN? 管 理平臺的 的 L MySQL? 安 裝步驟浩姥,如果已安裝則 無 需安裝 )
# rpm -qa | grep mysql ## 查看該操作系統(tǒng)上是否已經(jīng)安裝了 mysql 數(shù)據(jù)庫勒叠,
有的話,可以通過 rpm -e 命令 或者 rpm -e --nodeps 命令來卸載掉
# yum install mysql-server mysql mysql-devel
# service mysqld start
# chkconfig --list | grep mysqld
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
用上面的命令查看到 MySQL 并沒有設(shè)置開機(jī)啟動缴饭,所以需要設(shè)置開機(jī)啟動
# chkconfig mysqld on
為了方便遠(yuǎn)程管理,防火墻中打開 3306 端口
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重啟防火墻担猛,使端口配置生效
# service iptables restart
設(shè)置 MySQL 數(shù)據(jù)庫 root 用戶的密碼:
# mysqladmin -u root password 'wusc.123'
登錄數(shù)據(jù)庫:
# mysql -u root -p
MySQL 授權(quán)遠(yuǎn)程訪問(先用 root 登錄 mysql)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'wusc.321' WITH
GRANT OPTION;
mysql> FLUSH PRIVILEGES;
2、配置MySQL
結(jié)合SonarQube先改,MySQL數(shù)據(jù)庫最好使用 B InnoDB? 引擎 仇奶, 可提高性能比驻。
看你的 mysql 現(xiàn)在已提供什么存儲引擎:mysql> show engines;
看你的 mysql 當(dāng)前默認(rèn)的存儲引擎:
mysql> show variables like '%storage_engine%';
修改 MySQL 存儲引擎為 InnoDB, 在配置文件/etc/my.cnf 中的
[mysqld] 下面加入 default-storage-engine=INNODB
# vi /etc/my.cnf
[mysqld]
default-storage-engine=INNODB
重啟 mysql 服務(wù)器
# service mysqld restart
再次登錄 MySQL 查看默認(rèn)引擎設(shè)置是否生效
mysql> show variables like '%storage_engine%';
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| storage_engine | InnoDB |
+----------------+--------+
innodb_buffer_pool_size 參 數(shù)值設(shè)置得盡可能大 一 點(diǎn)
這個參數(shù)主要作用是緩存 innodb 表的索引狈茉,數(shù)據(jù)氯庆,插入數(shù)據(jù)時的緩沖
默認(rèn)值:128M堤撵,專用 mysql 服務(wù)器設(shè)置的大杏疠骸:操作系統(tǒng)內(nèi)存的 70%-80%最佳禽翼。
設(shè)置方法:my.cnf 文件[mysqld] 下面加入 innodb_buffer_pool_size 參數(shù)
# vi /etc/my.cnf
[mysqld]
innodb_buffer_pool_size = 256M
(我們這里設(shè)置為 256M族跛,因?yàn)槲覀兊牟皇菍S玫?MySQL 數(shù)據(jù)庫服務(wù)器礁哄,還有很多其他的服
務(wù)需要占用系統(tǒng)內(nèi)存)
設(shè)置 MySQL? 的 查詢緩存 query_cache_size , , 最 少設(shè)置? 15M
# vi /etc/my.cnf
[mysqld]
query_cache_type=1
query_cache_size=32M
重啟 mysql 服務(wù)器
# service mysqld restart
驗(yàn)證緩存設(shè)置是否生效:
mysql> show variables like '%query_cache%';
+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 33554432 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+----------+
3夺脾、創(chuàng)建sonarqube數(shù)據(jù)庫(UTF-8編碼)
三茉继、安裝SonarQube的Web Server
下載最新 LTS 版的 SonarQube 安裝包(當(dāng)前版本為 sonarqube-4.5.4.zip):
下載地址:http://www.sonarqube.org/downloads/
http://dist.sonar.codehaus.org/sonarqube-4.5.4.zip
下載:
# wget http://dist.sonar.codehaus.org/sonarqube-4.5.4.zip
解壓安裝:
# unzip sonarqube-4.5.4.zip
# mv sonarqube-4.5.4 sonarqube
編輯 sonar 配置:
# cd sonarqube/conf/
# vi sonar.properties
sonar.jdbc.username=yulei
sonar.jdbc.password=123456
#----- MySQL 5.x
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterE
ncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.web.host=0.0.0.0
sonar.web.context=/sonarqube
sonar.web.port=9090
保存以上配置(注意菲茬,要看看默認(rèn)的 9000 端口是否已被占用)
防火墻中打開 9090 端口:
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT
重啟防火墻,使端口配置生效
# service iptables restart
啟動 SonarQube Web Server
# /root/sonarqube/bin/linux-x86-64/sonar.sh start
(初次啟動會自動建表和做相應(yīng)的初始化)
瀏覽器中輸入:http://192.168.4.221:9090/sonarqube/
登錄,默認(rèn)用戶名/密碼為 admin/admin
到此氯哮,SonarQub已安裝完畢,接下來是對SonarQube做相應(yīng)的配置和使用