一、简介
SonarQube(简称Sonar)是管理代码质量的开放平台,它可以快速地对代码质量进行分析,并给出合理的解决方案,提高管理效率,保证代码质量。
Sonar Scanners:是用于将项目发布到Sonar进行审查的工具。如果项目使用Maven,请根据Scanner的[官方文档]进行配置。
SonarLint:是Eclipse最新版的Sonar插件。
如上图:
1. 开发人员在本地使用 SonarLint 运行分析 IDEs 上的代码;
2. 开发者将自己的代码上传到持续集成服务器上,例如:git,SVN,TFVC,……;
3. 持续集成服务器触发自动构建,SonarQube 扫描仪执行代码分析;
4. 分析报告发送到 SonarQube 服务器进行处理;
5. SonarQube 服务器分析和存储分析报告结果到 SonarQube 数据库中,并显示结果在 UI 界面中;
6. 开发人员通过修改、评审代码来管理和减少他们 SonarQube UI 页面上的问题;
7. 项目经理收到分析报告
运维使用 api 来从 SonarQube 自动化配置和提取数据
运维使用 JMX 监控 SonarQube 服务器
二、部署安装(Linux环境)
2.1 环境准备
安装mysql数据库服务端(推荐5.7+),
设置为utf-8编码,创建相应sonar数据库,设置相应用户名、密码,启动mysql
1. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm //生成MD5值并确保同官方网站上的MD5值相同。 注意:建议运行此命令以确保文件无损坏。 2. md5sum mysql57-community-release-el7-11.noarch.rpm //确认MD5无误后,安装YUM源RPM安装包。 3. rpm -ivh mysql57-community-release-el7-11.noarch.rpm 4. yum install mysql-server //输入 5. systemctl start mysqld //即可启动MySQL服务。 systemctl status mysqld //即可查看当前MySQL服务状态。 systemctl disable mysqld //由于MySQL默认开机自动启动,用于取消开机自动启动 //初次进入mysql 6. mysql -uroot -p //进入mysql grep 'temporary password' /var/log/mysqld.log //查看MySQL root用户临时密码。 注意:此密码仅供第一次登陆MySQL使用,登录后必须 //修改密码规则 7. mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1; mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; //修改编码格式为UTF-8 8. mysql> show variables like 'character_set_%'; // 查看当前mysql的字符编码 修改用 vim /etc/my.cnf
1. service mysqld restart 2. mysql> show variables like 'character_set_%'; mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1; 3. //创建用户 CREATE USER 'sonar'@'LOCALHOST' IDENTIFIED BY 'sonar'; //查询用户 SELECT HOST,USER,AUTHENTICATION_STRING FROM mysql.user; 4.//建库赋值 CREATE DATABASE sonar CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI; GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'LOCALHOST' IDENTIFIED BY 'sonar';
2.2、安装SonarQube
1.下载sonarQube安装包
并上传安装包到CentOS操作系统,放置在/home目录下,并将压缩包解压到/usr/local目录下:
#cd /home
#unzip sonarqube-7.0.zip -d /usr/local
2. 修改配置文件
#cd /usr/local/sonarqube-7.0/conf
#vi sonar.properties
修改:数据库配置,及其用户名,密码
3. 启动sonar
#cd /usr/local/sonarqube-7.0/bin/linux-x86-64
#./sonar.sh start
注:由于elasticsearch 出于安全方面考虑,不允许root用户启动,所以
#chmod -R 777 /usr/local/sonarqube-7.0
#./sonar.sh start
4.sonar 汉化
1. github地址 下载(参照兼容列表说明,下载已安装的SonarQube版本对应的兼容插件)。
2. 放入sonar如下目录: sonarqube-7.0\extensions\plugins
3. 然后重启sonar就可以了。
5.测试验证
默认由9000端口提供UI管理页面,从浏览器访问:http://localhost:9000 (管理员:admin,密码:admin),如访问失败,则可以在 ../logs/sonar.log 文件中查看日志。
安装服务
打开 StartSonar.bat 文件所在目录,运行文件 InstallNTService.bat 安装服务即可
2.2、安装SonarScanner
2.3、Eclipse+ SonarLint插件(连接到SonarQube平台)
在项目上右键—> Run as—>Run configuration—>Maven Build 下面新建 sonar:sonar