SonarQube代码质量管理平台(安装与部署)
SonarQube介绍:这个一个管理代码质量的开放平台,可以从七个维度检测代码质量
1)、复杂度分布(complexity):代码复杂度过高将难以理解、难以维护
2)、重复代码(duplications):程序中包含大量复制粘度的代码是质量低下的表现
3)、单元测试(unit tests):统计并展示单元测试覆盖率
4)、编码规范(coding rules):通过Findbugs、PMD、CheckStyle等规范代码编写
5)、注释(commments):少了可读性差,多了看起来费劲
6)、潜在的Bug(potential bugs):通过Findbugs、PMD、CheckStyle等检测潜在bug
7)、结构与设计(architecture & design):依赖i、耦合等
SonarQube 可以集成不同的测试工具,代码分析工具、持续集成工具、IDE
Sonar通过对代码质量分析结果数据进行在加工处理,通过量化的方式来度量代码的质量变化,从而可以方便的对工程进行代码质量管理。
支持语言:JAVA PHP C# C COBOL PL/SQL FLEX等
SonarQube平台的组成:
1)、数据库:存放SonarQube的配置数据、代码质量的快照数据
2)、web服务:用于查看SonarQube的配置数据、代码质量的快照数据
3)、分析器:对项目代码进行分析、生成质量结果数据并存入数据库中(分析器有多中,此处选择SonarQube Maven Plugin)
SonarQube环境要求说明:
https://docs.sonarqube.org/display/SONAR/Requirements
安装环境:JDK1.8、 CenterOS 6.5 、SonarQube-5.6.7(LTS) 、Maven、Mysql5.1
IP 192.168.1.138
1、安装Mysql(单独安装,与业务系统的数据库分开)
# rpm -qa | grep mysql ##查看操作系统上是否已经安装了mysql数据,如果有,通过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并没有设置开机启动个,所以要设置开机启动
# chkconfig mysqld on
为了方便远程管理,防火墙打开3306端口
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重启防火墙
service iptables restart
设置MySql数据库root 用户的密码GR
# mysqladmin -u root password 'root'
登录数据库
# mysql -u root -p
MYSQL授权远程访问(先用root登录mysql)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
2、配置MySQL,结合SonarQube,Mysql 数据库最好使用InnolDB引擎,可提高性能
查看mysql现在已提供什么存储引擎: mysql> show engines;
查看mysql当前默认的存储引擎
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
:wq
重启mysql服务
service mysqld restart
重新查看,是否生效
mysql> show variables like '%storage_engine%';
innodb_buffer_pool_size参数值设置的尽可能大一点,这个参数主要作用是缓存innodb表的索引,数据,插入数据是的缓冲,默认值是128MB,专用mysql服务器设置的大小为操作系统内存的70%-80%最佳
设置方法:my.cnf文件[mysqld] 下面加入 innodb_buffer_pool_size参数
# vi /etc/my.cnf
[mysqld]
innodb_buffer_pool_size=256M ##此处为非专用服务器,适可配置
:wq
设置MySQL的查询缓存,query_cache_size 最少设置15M
# vi /etc/my.cnf
[mysqld]
query_cache_type=1
query_cache_size=32M
:wq
重启mysql服务
service mysqld restart
查看Mysql缓存是否生效
mysql>show variables like '%query_cache%';
3、创建sonarqube数据库(UTF-8编码),通过sqlyog客户端创建即可
4、安装SonarQube的Web Server
下载最新的LTS版SonarQube安装包,(
sonarqube-5.6.7)
下载地址:
https://www.sonarqube.org/downloads/
也可以使用命令:
# wget -P /home/admin/tempsoft/ https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.7.zip
解压安装
# unzip sonarqube-5.6.7.zip
# mv sonarqube-5.6.7 /home/admin/soft/sonarqube
编辑数据库连接配置
# cd /home/admin/soft/sonarqube/conf
# vi sonar.properties
sonar.jdbc.username=
root
sonar.jdbc.password=
root
#----- MySQL 5.6 or greater
sonar.jdbc.url=jdbc:mysql://localhost:3306/
sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.web.host=0.0.0.0 ##0.0.0.0代表所有
sonar.web.context=/sonarqube ##如果不设置则为/
sonar.web.port=9090
:wq
防火墙打开9090端口
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9090-j ACCEPT
重启防火墙
service iptables restart
启动SonarQube WebServer
# /home/admin/soft/sonarqube/bin/linux-x86-64/sonar.sh start (初次启动会自动建表和做相应初始化)
浏览器访问:http://192.168.159.138:9090/sonarqube
默认用户名/密码:admin/admin
192.168.159.120服务器上安装的sonarqube5.6.7
汉化方式:
1、Administration->System->update center ->available -> 查找或搜索Chinese Pack
2、搜索安装Checkstyle、PMD、Cobertura插件
3、在idea中安装setting-> plugings->搜索并安装sonarlink插件
4、Maven分析器插件的配置与使用
在setting.xml文件的profiles节点下插入
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Example for MySQL-->
<sonar.jdbc.url>jdbc:mysql://192.168.159.120:3306/sonar?useUnicode=true&characterEncoding=utf8</sonar.jdbc.url>
<sonar.jdbc.username>root</sonar.jdbc.username>
<sonar.jdbc.password>root</sonar.jdbc.password>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>http://192.168.159.120:9000/sonar</sonar.host.url>
</properties>
</profile>
使用Maven分析器进行分析,命令(如果是第一次运行次命令,查看日志会发现他会先下载sonar-runner等插件),成功执行完分析命令后可到Web Server中查看代码质量分析结构数据。
纯Maven命令:mvn clean install sonar:sonar
eclipse/myeclipse/idea中执行:clean install sonar:sonar
idea 可以在右侧maven中双击使用相关命令
5、页面操作体验相关功能
6、问题处理介绍(质量管理的体现)
IDEA 分析代码
1)、在sonar服务上创建
2)、通过setting->other settings>设置sonarlint相关配置
3)、最后在项目上邮件点击分析