SonarQube---在具体项目中的使用
一、简介
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
SonarQube---在具体项目中的使用的更多相关文章
- TFS在项目中DevOps落地进程(下)
紧接上篇 TFS在项目中Devops落地进程(上) 再接着说TFS相关之前先插入一个番外篇,虽然跟TFS关系不大但跟DevOps关系很大,觉得有必要在此乱入一下. 番外篇--监控之Applicatio ...
- 使用sonarqube对java项目进行分析
目前有两种办法,第一种是使用SonarQube-Scanner-Maven,第二种是结合gitlab-ci进行 前提条件:已安装并启动sonarqube,知道访问地址和登录的用户名及密码,具体参考文档 ...
- VS项目中使用Nuget还原包后编译生产还一直报错?
Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...
- ABP项目中使用Swagger生成动态WebAPI
本文是根据角落的白板报的<使用ABP实现SwaggerUI,生成动态webapi>一文的学习总结,感谢原文作者角落的白板报. 1 安装Swashbuckle.core 1.1 选择WebA ...
- iOS 之项目中遇到的问题总结
昨天去一家公司面试,面试官问了我在项目开发中遇到过哪些问题,是什么引起的,怎样解决的? 当时由于有点小紧张只说出了一两点,现在就来好好总结一下. 问题: 1.两表联动 所谓的两表联动就是有左右两个表格 ...
- My97DatePicker时间控件在项目中的应用
一.下载My97DatePicker的压缩包My97DatePicker.rar,解压. 注:My97DatePicker最新版本有开发包,项目中使用时删掉,以便节省空间,提高程序的运行效率. 二.在 ...
- 在项目中同时使用Objective-C和Swift
苹果发布的Swift语言可以和之前的Objective-C语言同时存在于一个项目中. 可能有人会认为是同一个类文件中既可以有Objective-C也可以有Swift,这是不对的.同一个类文件或同一个代 ...
- 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持
在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...
- 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入
在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...
随机推荐
- 用户管理命令--useradd
用户管理命令--useradd 作用:用于添加一个新的用户 格式:useradd [ 选项 ] 用户名 选项的常用介绍 -u: UID指定用户id,必须是唯一的,并且大于499 -c: 添加注释,可以 ...
- 微信小程序的坑之wx.miniProgram.postMessage
工作中有个需求是小程序的网页在关闭的时候,需要回传给小程序一个参数 查阅小程序官方文档,有这样一个接口 wx.miniProgram.postMessage ,可以用来从网页向小程序发送消息,然后通过 ...
- (二十三)Python 3 文件操作
文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件的模式有三种: 只读模式(默认) 只写模式(不可读,不存在则创建,存在则覆盖) 追加模式(可读,不存在则 ...
- 杭电 1260 Tickets
Description Jesus, what a great movie! Thousands of people are rushing to the cinema. However, this ...
- POJ 3659 Cell phone Network (树的最小点覆盖, 树形DP)
题意: 给定一棵树,每个点可以覆盖自己和相邻的点, 求最少要多少个点覆盖图 #include <cstdio> #include <cstring> #include < ...
- xtu summer individual 1 E - Palindromic Numbers
E - Palindromic Numbers Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %l ...
- SpringMVC(8) - 处理器映射
在以前的Spring版本中,用户需要在Web应用程序上下文中定义一个或多个HandlerMapping bean,以将传入的Web请求映射到适当的处理器.通过引入带注解的控制器,就不需要像之前那样定义 ...
- ZOJ 3811 Untrusted Patrol【并查集】
题目大意:给一个无向图,有些点有装监视器记录第一次到达该点的位置,问是否存在一条路径使得监视器以给定的顺序响起,并且经过所有点 思路:牡丹江网络赛的题,当时想了种并查集的做法,通神写完程序WA了几发, ...
- 【模拟】2017 Multi-University Training Contest 1 The Battle of Chibi
acm.hdu.edu.cn/showproblem.php?pid=5542 [Accepted] #include<iostream> #include<cstdio> # ...
- PHP应用日期与时间
<?php/* 时间戳 * * 1. 是一个整数 * 2. 1970-1-1 到现在的秒数 1213212121 * * 2014-02-14 11:11:11 * * 02/14/2014 1 ...