摘要:安裝使用文檔代碼質(zhì)量相信是每個(gè)團(tuán)隊(duì)的最高追求之一,質(zhì)量高的團(tuán)隊(duì),開發(fā)成本維護(hù)成本都很低同樣人數(shù)的團(tuán)隊(duì),一年內(nèi)高質(zhì)量團(tuán)隊(duì)是低質(zhì)量團(tuán)隊(duì)產(chǎn)出的倍打個(gè)比方,一個(gè)團(tuán)隊(duì)開發(fā)完產(chǎn)品,行代碼出一個(gè)和行代碼一個(gè)的團(tuán)隊(duì)。
SonarQube Scanner 安裝使用文檔
代碼質(zhì)量相信是每個(gè)團(tuán)隊(duì)的最高追求之一,質(zhì)量高的團(tuán)隊(duì),開發(fā)成本、維護(hù)成本都很低;
同樣人數(shù)的團(tuán)隊(duì),一年內(nèi)高質(zhì)量團(tuán)隊(duì)是低質(zhì)量團(tuán)隊(duì)產(chǎn)出的10倍;打個(gè)比方,一個(gè)團(tuán)隊(duì)開發(fā)完產(chǎn)品,1000行代碼出一個(gè)bug和100行代碼一個(gè)bug的團(tuán)隊(duì)。能想象場景了。
介紹一款代碼質(zhì)量檢測工具Sonar,為正在辛苦代碼審核的同學(xué)提供一點(diǎn)便利;官網(wǎng)提供了很方便的教程;這里再做一個(gè)中文推廣
適合場景:一個(gè)代碼冗余多,代碼邏輯重復(fù)多(對(duì),你沒看錯(cuò),這里的重復(fù)真的是重復(fù)),分格隨意項(xiàng)目的系統(tǒng)檢查,重構(gòu),架構(gòu)調(diào)整;
一、 Sonar環(huán)境介紹sonar_platform_support.png
通常檢查代碼是項(xiàng)目用,所以例子安裝在阿里云的服務(wù)器上。
教程環(huán)境介紹:
[ ] OS平臺(tái):centos6.x
[ ] 數(shù)據(jù)庫:mysql5.6.x
二、下載下載最近版本,兼容性會(huì)比較好:
下載Sonar sonarqube-6.4.zip
下載掃描器sonar-scanner-cli-3.0.3.778-linux
三、安裝檢測java:
[root@xx]# java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
顯示這樣就ok了;
如果java OpenJDK低于8:
官網(wǎng)下載 jdk-8u111-linux-x64.tar.gz
檢測mysql 5.6.x以上 :
mysql> select version(); +-----------+ | version() | +-----------+ | 5.6.13 | +-----------+ 1 row in set (0.00 sec) mysql> CREATE DATABASE `sonar` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; mysql> CREATE USER "sonarUser"@"127.0.0.1" IDENTIFIED BY "sonarPassword"; mysql> GRANT ALL ON *.* TO "sonarUser"@"%"; mysql> GRANT select,insert,update,delete,create,drop on *.* to [email protected] IDENTIFIED BY "sonarPassword"; mysql> flush privileges; mysql> exit [root@xx] mysql -h127.0.0.1 -usonarUser -psonarPassword
注意:安裝sonar 需要在mysql提前建庫,并配置字符編碼utf-8;給sonar建一個(gè)賬號(hào);
/app/mysql/my.cnf 配置buffer開大點(diǎn),比較你的代碼會(huì)挺多:
innodb_buffer_pool_size = 128M
[mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. innodb_buffer_pool_size = 128M
存放目錄:/app/original/
下載并解壓:
[root@xx] unzip sonarqube-6.4.zip unzip; [root@xx] sonar-scanner-cli-3.0.3.778-linux.zip; drwxr-xr-x 10 root root 4096 Jun 2 08:43 sonarqube-6.4 -rw-r--r-- 1 root root 139755847 Jun 13 15:27 sonarqube-6.4.zip drwxr-xr-x 6 root root 4096 May 12 12:49 sonar-scanner-3.0.3.778-linux -rw-r--r-- 1 root root 73799876 Jun 13 15:02 sonar-scanner-cli-3.0.3.778-linux.zip
vim sonarqube-6.4/conf/sonar.properties
sonar.properties 兩處必須配置:
配置mysql:
# User credentials. # Permissions to create tables, indices and triggers must be granted to JDBC user. # The schema must be created first. sonar.jdbc.username=sonar sonar.jdbc.password=sonarPassword #----- Embedded Database (default) # H2 embedded database server listening port, defaults to 9092 #sonar.embeddedDatabase.port=9092 #----- MySQL 5.6 or greater # Only InnoDB storage engine is supported (not myISAM). # Only the bundled driver is supported. It can not be changed. sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
配置web server:
端口號(hào):9090:
允許ip:0.0.0.0 表示允許所有;
# Binding IP address. For servers with more than one IP address, this property specifies which # address will be used for listening on the specified ports. # By default, ports will be used on all IP addresses associated with the server. sonar.web.host=0.0.0.0 # Web context. When set, it must start with forward slash (for example /sonarqube). # The default value is root context (empty value). #sonar.web.context= # TCP port for incoming HTTP connections. Default value is 9000. sonar.web.port=9090
啟動(dòng):
[root@xx] cd /app/original/sonarqube-6.4/ [root@xx] ./bin/linux-x86-64/sonar.sh start [root@xx] ps aux | grep sonar
如果沒起來檢查log
[root@xx]cd /app/original/sonarqube-6.4/logs [root@xx]vim web.log; 2017.06.13 17:08:04 INFO web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.authentication.ws.LogoutAction@96ee351 [pattern=UrlPattern{inclusions=[/api/authentication/logout], exclusions=[]}] 2017.06.13 17:08:04 INFO web[][o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.authentication.ws.ValidateAction@3f15fe01 [pattern=UrlPattern{inclusions=[/api/authentication/validate], exclusions=[]}] 2017.06.13 17:08:04 INFO web[][o.s.s.p.Platform] WebServer is operational [root@xx] ./bin/linux-x86-64/sonar.sh restart
配置掃描器:
vim /app/original/sonar-scanner-3.0.3.778-linux/conf/sonar-scanner.properties
#----- Default SonarQube server sonar.host.url=http://xxx.xxx.xxx:9090 #----- Default source code encoding sonar.sourceEncoding=UTF-8四、使用
[root@xx] sudo ln -s /app/original/sonar-scanner-3.0.3.778-linux/bin/sonar-scanner /usr/bin/sonar-scanner
讓sonar-scanner可執(zhí)行文件加入全局
項(xiàng)目根目錄下新建文件
cd /app/project/
vim sonar-project.properties
sonar.projectKey=project:admin sonar.projectName=project sonar.projectVersion=1.4 sonar.sources=. sonar.language=php sonar.sourceEncoding=UTF-8
執(zhí)行:
[root@xx project]# sonar-scanner INFO: Scanner configuration file: /app/original/sonar-scanner-3.0.3.778-linux/conf/sonar-scanner.properties INFO: Project root configuration file: /app/project/sonar-project.properties INFO: SonarQube Scanner 3.0.3.778五、舉栗子
安裝好,啟動(dòng)后的界面
方便QA白盒的界面
生產(chǎn)環(huán)境應(yīng)該去掉的注釋
掃了一個(gè)開源插件,原來有好多bug,這里靜態(tài)方法里使用的動(dòng)態(tài)調(diào)用.
查到的代碼冗余
資料來源:
官網(wǎng):https://www.sonarqube.org
兩分鐘安裝:https://docs.sonarqube.org/di...
QQ:2764239385
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30601.html
摘要:如果有報(bào)錯(cuò)官方文檔即可是時(shí)候來張圖了具體的和漢化,可以通過頁面對(duì)應(yīng)的插件。 下載jdk&sonarqube&sonar-scanner 安裝jdk 基于ubuntu 16.04+apache[具體webserver采用缺省安裝]推薦下載安裝【底部有網(wǎng)盤地址】 sonarqube-5.6.6.zip jdk-8u121-linux-x64.tar.gz sonar-scanner-2...
摘要:是一個(gè)用于代碼質(zhì)量管理的開源平臺(tái)。支持,此處以為例。注意,此處必須保證該私鑰對(duì)應(yīng)的公鑰即必須配置在上,否則會(huì)失敗配置完成后點(diǎn)擊。單元測試?yán)妹钸\(yùn)行虛擬機(jī)進(jìn)行單元測試,然后把輸出結(jié)果數(shù)據(jù)生成報(bào)告。 摘要: Jenkins Jenkins是一款開源的持續(xù)集成工具,它的特點(diǎn):易于安裝、易于配置、可擴(kuò)展(自己開發(fā)插件),并且它擁有數(shù)以百計(jì)的成熟插件,這種插件式的特點(diǎn)提供可做任何事情的可能。 ...
摘要:是一個(gè)用于代碼質(zhì)量管理的開源平臺(tái)。支持,此處以為例。注意,此處必須保證該私鑰對(duì)應(yīng)的公鑰即必須配置在上,否則會(huì)失敗配置完成后點(diǎn)擊。單元測試?yán)妹钸\(yùn)行虛擬機(jī)進(jìn)行單元測試,然后把輸出結(jié)果數(shù)據(jù)生成報(bào)告。 摘要: Jenkins Jenkins是一款開源的持續(xù)集成工具,它的特點(diǎn):易于安裝、易于配置、可擴(kuò)展(自己開發(fā)插件),并且它擁有數(shù)以百計(jì)的成熟插件,這種插件式的特點(diǎn)提供可做任何事情的可能。 ...
摘要:安裝下載地址安裝環(huán)境準(zhǔn)備安裝安裝參考安裝創(chuàng)建數(shù)據(jù)庫用于啟動(dòng)解壓到更改啟動(dòng)的參數(shù),避免啟動(dòng)報(bào)錯(cuò)編輯編輯啟動(dòng)配置反向代理自定義瀏覽器訪問如下默認(rèn)登錄用戶名密碼配置為自啟動(dòng)服務(wù)創(chuàng)建自啟動(dòng)腳本文件添加啟動(dòng)服務(wù) CentOS6 安裝sonarsource sonarqube下載地址: https://sonarsource.bintray.c... wget https://sonarsourc...
閱讀 2869·2021-11-22 15:22
閱讀 19339·2021-09-22 15:00
閱讀 1449·2021-09-07 09:58
閱讀 1251·2019-08-30 13:01
閱讀 2456·2019-08-29 16:27
閱讀 2356·2019-08-26 13:25
閱讀 1629·2019-08-26 12:13
閱讀 952·2019-08-26 11:53