持续集成
SonarQube 代码质量管理平台的安装
IP:192.168.4.221
环境:CentOS 6.6、JDK7、MySQL5.1 、SonarQube-4.5.4(LTS)
root用户操作
准备工作:已安装JDK7并配置好了环境变量
1 、安装MySQL5.1
(可参考前面SVN管理平台的 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用户的密码:
# mysqladmin -u root password 'wusc.123'
登录数据库:
# mysql -u root -p
MySQL授权远程访问(先用 root登录 mysql)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'wusc.321' WITH
GRANT OPTION;
mysql> FLUSH PRIVILEGES;
2、配置MySQL
结合SonarQube,MySQL 数据库最好使用InnoDB 引擎,可提高性能。
看你的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
重启mysql 服务器
# service mysqld restart
再次登录 MySQL查看默认引擎设置是否生效
mysql> show variables like '%storage_engine%';
+----------------+--------+
| Variable_name | Value |
+----------------+--------+
| storage_engine | InnoDB |
+----------------+--------+
innodb_buffer_pool_size 参数值设置得尽可能大一点
这个参数主要作用是缓存innodb表的索引,数据,插入数据时的缓冲
默认值:128M,专用mysql 服务器设置的大小:操作系统内存的70%-80%最佳。
设置方法:my.cnf文件[mysqld] 下面加入innodb_buffer_pool_size参数
# vi /etc/my.cnf
[mysqld]
innodb_buffer_pool_size = 256M
(我们这里设置为 256M,因为我们的不是专用的 MySQL 数据库服务器,还有很多其他的服
务需要占用系统内存)
设置MySQL 的查询缓存 query_cache_size ,最少设置 15M
# vi /etc/my.cnf
[mysqld]
query_cache_type=1
query_cache_size=32M
重启mysql 服务器
# service mysqld restart
验证缓存设置是否生效:
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、创建sonarqube 数据库(UTF-8编码)
> CREATE DATABASE sonarqube;
二、安装SonarQube 的 Web Server
下载最新LTS版的SonarQube 安装包(当前版本为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=root
sonar.jdbc.password=wusc.123
#----- 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
保存以上配置(注意,要看看默认的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
./sonar.sh start
(初次启动会自动建表和做相应的初始化)
浏览器中输入:http://192.168.4.221:9090/sonarqube/
登录,默认用户名/密码为 admin/admin
到此,SonarQube 已安装完毕,接下来是对 SonarQube 做相应的配置和使用
第二章 SonarQube 代码质量管理平台的配置与使用
一、SonarQube的配置(前提,先用 admin用户登录)
1、 安装中文汉化包:
Setting >> Update Center >> Available Plugins >> LOCALIZATION >> Chinese Pack
>> Install
安装完汉化包之后需要重启 SonarQube才能生效(重启前可顺便把CheckStyle、PMD等插件
安装一下)
# /root/sonarqube/bin/linux-x86-64/sonar.sh restart
Stopping SonarQube...
Stopped SonarQube.
Starting SonarQube...
Started SonarQube.
重启完之后刷新SonarQube:http://192.168.4.221:9090/sonarqube/
汉化成功(注意,汉化包并没有完全汉化)
重新登录
2、 MyEclipse/Eclipse中安装SonarQube插件的安装、配置、使用:
http://docs.sonarqube.org/display/SONAR/SonarQube+in+Eclipse
http://docs.sonarqube.org/display/SONAR/Installing+SonarQube+in+Eclipse
http://docs.sonarqube.org/display/SONAR/Configuring+SonarQube+in+Eclipse
http://docs.sonarqube.org/display/SONAR/Working+with+SonarQube+in+Eclipse
(请参考官方文档操作,在此不作讲解,我们重点讲 SonarQube 结合Maven 插件的使用)
3、 Maven分析器插件的配置与使用
http://docs.sonarqube.org/display/SONAR/Installing+and+Configuring+Maven
在Maven本地库中的settings.xml(我这里是settings_edu.xml)配置文件中的
<profiles></profiles>节点中添加如下配置:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- Example for MySQL-->
<sonar.jdbc.url>
jdbc:mysql://192.168.4.221:3306/sonarqube?useUnicode=true&chara
cterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.username>root</sonar.jdbc.username>
<sonar.jdbc.password>wusc.321</sonar.jdbc.password>
<!-- Optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>http://192.168.4.221:9090/sonarqube</sonar.host.url>
</properties>
</profile>
使用Maven分析器进行分析,命令:
纯Maven命令:mvn clean install sonar:sonar
MyEclipse中执行:clean install sonar:sonar
(如果你是第一次运行此命令,看执行日志你会发现它会先下载 sonar-runner等插件)
成功执行完分析命令后便可到Web Server中查看代码质量分析结果数据。
4、 配置:
(1) 配置
(2) 权限
(3) 系统
5、 质量配置介绍(切换默认配置)
6、 代码规则介绍(自定义规则)
7、 问题处理介绍(质量管理的体现)
8、 指表
9、 仪表盘(自定义)