Dubbo視頻教程--基礎(chǔ)篇--第15節(jié)--持續(xù)集成篇--SonarQube代碼質(zhì)量管理平臺(tái)的介紹與安裝

一、SonarQube的介紹

1、SonarQube的介紹 :

SonarQube是一個(gè)管理代碼質(zhì)量的開放平臺(tái)。

可以從七個(gè)維度檢測(cè)代碼質(zhì)量(為什么要用SonarQube):

(1)? 復(fù)雜度分布(complexity) :代碼復(fù)雜度過高將難以理解、難以維護(hù)

(2)? 重復(fù)代碼(duplications) :程序中包含大量復(fù)制粘貼的代碼是質(zhì)量低下的表現(xiàn)

(3)? 單元測(cè)試(unit tests) :統(tǒng)計(jì)并展示單元測(cè)試覆蓋率

(4)? 編碼規(guī)范(coding rules) :通過Findbugs,PMD,CheckStyle等規(guī)范代碼編寫

(5)? 注釋(comments) :少了可讀性差,多了看起來費(fèi)勁

(6)? 潛在的Bug(potential bugs) :通過Findbugs,PMD,CheckStyle等檢測(cè)潛在的bug

(7)? 結(jié)構(gòu)與設(shè)計(jì)(architecture & design) :依賴、耦合等

Sonar 可以集成不同的測(cè)試工具、代碼分析工具、持續(xù)集成工具、IDE。

Sonar通過對(duì)代碼質(zhì)量分析結(jié)果數(shù)據(jù)進(jìn)行再加工處理,通過量化的方式來度量

代碼質(zhì)量的變化,從而可以方便地對(duì)工程進(jìn)行代碼質(zhì)量管理。

支持的語言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。

2、SonarQube平臺(tái)的組成:

(1) 數(shù)據(jù)庫:存放SonarQube的配置數(shù)據(jù)、代碼質(zhì)量的快照數(shù)據(jù)

(2) Web服務(wù):用于查看SonarQube的配置數(shù)據(jù)、代碼質(zhì)量的快照數(shù)據(jù)

(3) 分析器:對(duì)項(xiàng)目代碼進(jìn)行分析,生成質(zhì)量結(jié)果數(shù)據(jù)并存入數(shù)據(jù)庫中

(分析器有多種,我們選用 SonarQube Maven Plugin)


架構(gòu)圖


二、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

(具體安裝步驟請(qǐng)參照安裝詳細(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? 管 理平臺(tái)的 的 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ī)啟動(dòng),所以需要設(shè)置開機(jī)啟動(dòng)

# 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)在已提供什么存儲(chǔ)引擎:mysql> show engines;


查看存儲(chǔ)引擎

看你的 mysql 當(dāng)前默認(rèn)的存儲(chǔ)引擎:

mysql> show variables like '%storage_engine%';


默認(rèn)的存儲(chǔ)引擎

修改 MySQL 存儲(chǔ)引擎為 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)

這個(gè)參數(shù)主要作用是緩存 innodb 表的索引,數(shù)據(jù),插入數(shù)據(jù)時(shí)的緩沖

默認(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

啟動(dòng) SonarQube Web Server

# /root/sonarqube/bin/linux-x86-64/sonar.sh start

(初次啟動(dòng)會(huì)自動(dòng)建表和做相應(yīng)的初始化)

瀏覽器中輸入:http://192.168.4.221:9090/sonarqube/


sonarqube首頁

登錄,默認(rèn)用戶名/密碼為 admin/admin


登錄頁


到此,SonarQub已安裝完畢,接下來是對(duì)SonarQube做相應(yīng)的配置和使用

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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