一、简介

SonarQube(简称Sonar)是管理代码质量的开放平台,它可以快速地对代码质量进行分析,并给出合理的解决方案,提高管理效率,保证代码质量。

Sonar官网文档

Sonar Scanners:是用于将项目发布到Sonar进行审查的工具。如果项目使用Maven,请根据Scanner的[官方文档]进行配置。

SonarQube Scanners

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平台)

3.1  打开Eclipse,选择Help->Eclipse Marketplace,在Find里面输入SonarQube,点击install 
3.2  在SonarQube平台新建项目
3.3

在项目上右键—> Run as—>Run configuration—>Maven Build 下面新建 sonar:sonar

SonarQube---在具体项目中的使用的更多相关文章

  1. TFS在项目中DevOps落地进程(下)

    紧接上篇 TFS在项目中Devops落地进程(上) 再接着说TFS相关之前先插入一个番外篇,虽然跟TFS关系不大但跟DevOps关系很大,觉得有必要在此乱入一下. 番外篇--监控之Applicatio ...

  2. 使用sonarqube对java项目进行分析

    目前有两种办法,第一种是使用SonarQube-Scanner-Maven,第二种是结合gitlab-ci进行 前提条件:已安装并启动sonarqube,知道访问地址和登录的用户名及密码,具体参考文档 ...

  3. VS项目中使用Nuget还原包后编译生产还一直报错?

    Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...

  4. ABP项目中使用Swagger生成动态WebAPI

    本文是根据角落的白板报的<使用ABP实现SwaggerUI,生成动态webapi>一文的学习总结,感谢原文作者角落的白板报. 1 安装Swashbuckle.core 1.1 选择WebA ...

  5. iOS 之项目中遇到的问题总结

    昨天去一家公司面试,面试官问了我在项目开发中遇到过哪些问题,是什么引起的,怎样解决的? 当时由于有点小紧张只说出了一两点,现在就来好好总结一下. 问题: 1.两表联动 所谓的两表联动就是有左右两个表格 ...

  6. My97DatePicker时间控件在项目中的应用

    一.下载My97DatePicker的压缩包My97DatePicker.rar,解压. 注:My97DatePicker最新版本有开发包,项目中使用时删掉,以便节省空间,提高程序的运行效率. 二.在 ...

  7. 在项目中同时使用Objective-C和Swift

    苹果发布的Swift语言可以和之前的Objective-C语言同时存在于一个项目中. 可能有人会认为是同一个类文件中既可以有Objective-C也可以有Swift,这是不对的.同一个类文件或同一个代 ...

  8. 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

    在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...

  9. 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

    在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...

随机推荐

  1. [CF] 986 A. Fair

    http://codeforces.com/problemset/problem/986/A n个点的无向连通图,每个点有一个属性,求每个点到s个不同属性点的最短距离 依稀记得那天晚上我和Menteu ...

  2. 快速安装zabbix

    环境:CentOS 7.x 数据库mysql已事先安装 1.配置epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/r ...

  3. python 04 学生信息管理系统

    今天任务不多,做了学生信息管理系统1.0,使用字典存储学生个体信息,列表存储学生字典.注意dict定义要在循环体内,若定义成全局变量或循环体外,则旧数据会被新数据覆盖.dict属于可变类型数据,内容改 ...

  4. log4j 、logback 以及slf4j三者之间的关系

    在项目的开发中由于对于log4j.logback以及slf4j之间的关系和相关的知识不能清晰掌握,在业余时间进行记录. 1.三者之间的关系 1) 简答的讲就是slf4j是一系列的日志接口,而log4j ...

  5. (二)Robto Framewoek使用自己的python库

    有时候找不到合适的库来完成自动化工作,则需要使用自己定义的python库.本文简单描述自建python库,以及在robotframework中的使用方法. 新建库目录 在C:\Python27\Lib ...

  6. python 学习总结3

    Python蟒蛇绘制 一.实现程序如下 import turtle turtle.setup (650, 350, 200, 200)#turtle的绘图窗体turtle.setup(width, h ...

  7. Android布局之线性布局——LinearLayout

    本文将详细介绍线性布局的各种xml属性. xml属性 <?xml version="1.0" encoding="utf-8"?> <Line ...

  8. C 的指针和内存泄漏

    引言 对于任何使用 C 语言的人,如果问他们 C 语言的最大烦恼是什么,其中许多人可能会回答说是指针和内存泄漏.这些的确是消耗了开发人员大多数调试时间的事项.指针和内存泄漏对某些开发人员来说似乎令人畏 ...

  9. [转]ORA-38500: USING CURRENT LOGFILE option not available without stand

    标签: oracle 10g 数据库 ora-38500 it 分类: IT author:skate time :2009/08/03 在dataguard启用实时恢复的时候,报如下错误: ORA- ...

  10. CodeForces230A

    题目大意: 一个打恐龙的游戏,有初始体力s,和恐龙n只,然后输入n只恐龙的体力xi,和击杀它得到的奖励体力yi,只有自身体力大于恐龙体力时才能进行击杀,击杀恐龙的顺序可以不定 这题运用到了贪心的思想, ...