1、SonarQube的介紹
創(chuàng)新互聯(lián)公司長期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為常寧企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,常寧網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
官網(wǎng):https://www.sonarqube.org/
SonarQube是一個管理代碼質(zhì)量的開放平臺。
1.1 可以從七個維度檢測代碼質(zhì)量(為什么要用SonarQube)
(1)復雜度分布(complexity):代碼復雜度過高將難以理解、難以維護
(2)重復代碼(duplications):程序中包含大量復制粘貼的代碼是質(zhì)量低下的表現(xiàn)
(3)單元測試(unit tests):統(tǒng)計并展示單元測試覆蓋率
(4)編碼規(guī)范(coding rules):通過Findbugs,PMD,CheckStyle等規(guī)范代碼編寫
(5)注釋(comments):少了可讀性差,多了看起來費勁
(6)潛在的Bug(potential bugs):通過Findbugs,PMD,CheckStyle等檢測潛在的bug
(7)結(jié)構(gòu)與設(shè)計(architecture & design):依賴、耦合等
Sonar可以集成不同的測試工具、代碼分析工具、持續(xù)集成工具、IDE。
Sonar通過對代碼質(zhì)量分析結(jié)果數(shù)據(jù)進行再加工處理,通過量化的方式來度量代碼質(zhì)量的變化,從而可以方便地對工程進行代碼質(zhì)量管理。
支持的語言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。
1.2 SonarQube平臺的組成
數(shù)據(jù)庫:存放SonarQube的配置數(shù)據(jù)、代碼質(zhì)量的快照數(shù)據(jù)
Web服務(wù):用于查看SonarQube的配置數(shù)據(jù)、代碼質(zhì)量的快照數(shù)據(jù)
分析器:對項目代碼進行分析,生成質(zhì)量結(jié)果數(shù)據(jù)并存入數(shù)據(jù)庫中(分析器有多種,我們選用 SonarQube Maven Plugin)
2、安裝
2.1 配置MySQL
結(jié)合SonarQube,Mysql數(shù)據(jù)庫的引擎最好使用InnoDB,可以提高性能。
查看當前引擎:
mysql> show engines;
查看當前默認的引擎:
mysql> show variables like '%storage_engine%';
修改 MySQL 存儲引擎為 InnoDB, 在配置文件/etc/my.cnf
[root@localhost ~]# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 #加入這條default-storage-engine=INNODB default-storage-engine=INNODB [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
設(shè)置innodb_buffer_pool_size參數(shù)值
設(shè)置得盡可能大一點,這個參數(shù)主要作用是緩存 innodb 表的索引,數(shù)據(jù),插入數(shù)據(jù)時的緩沖
默認值:128M,專用 mysql 服務(wù)器設(shè)置的大?。翰僮飨到y(tǒng)內(nèi)存的 70%-80%最佳。
[root@localhost ~]# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 default-storage-engine=INNODB #加入這條innodb_buffer_pool_size = 256M innodb_buffer_pool_size = 256M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
設(shè)置查詢緩存query_cache_size,最少設(shè)置15M
[root@localhost ~]# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 default-storage-engine=INNODB innodb_buffer_pool_size = 256M #加入下面兩條query_cache_type=1 query_cache_size=32M query_cache_type=1 query_cache_size=32M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
重啟后,驗證緩存設(shè)置是否生效
mysql> show variables like '%query_cache%';
2.2 創(chuàng)建sonarqube數(shù)據(jù)庫( UTF8 編碼 )
2.3 安裝SonarQube的WebServer,這里使用sonarqube-4.5.4.zip
壓解,并重命名為sonarqube
[root@localhost opt] unzip sonarqube-4.5.4.zip [root@localhost opt] mv sonarqube-4.5.4/ sonarqube
編輯數(shù)據(jù)庫連接配置:
[root@localhost sonarqube]# cd /opt/sonarqube/conf/ [root@localhost conf]# vi sonar.properties #數(shù)據(jù)庫用戶名和密碼 sonar.jdbc.username=root sonar.jdbc.password=123456 #----- MySQL 5.x sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance sonar.web.host=0.0.0.0 sonar.web.context=/sonarqube sonar.web.port=9090
2.4 啟動 SonarQube Web Server
/opt/sonarqube/bin/linux-x86-64/sonar.sh start
(初次啟動會自動建表和做相應的初始化)
瀏覽器輸入:http://192.168.175.9:9090/sonarqube/
默認用戶名/密碼為 admin/admin
設(shè)置自啟動:
1、新建文件/etc/init.d/sonar,輸入如下內(nèi)容:
#!/bin/sh # # rc file for SonarQube # # chkconfig: 345 96 10 # description: SonarQube system (www.sonarsource.org) # ### BEGIN INIT INFO # Provides: sonar # Required-Start: $network # Required-Stop: $network # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: SonarQube system (www.sonarsource.org) # Description: SonarQube system (www.sonarsource.org) ### END INIT INFO /opt/sonarqube/bin/linux-x86-64/sonar.sh $* exit $?
2、授權(quán)與添加系統(tǒng)服務(wù)
chmod 755 /etc/init.d/sonar chkconfig --add sonar
3、修改/opt/sonarqube/conf/wrapper.conf
wrapper.java.command=/home/jdk1.7.0_71/bin/java
當前題目:linux學習:持續(xù)集成篇--sonarqube代碼質(zhì)量管理平臺的介紹與安裝-04
標題來源:http://jinyejixie.com/article8/psihop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、App開發(fā)、云服務(wù)器、域名注冊、網(wǎng)頁設(shè)計公司、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)