一、简介

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. ZOJ3228 Searching the String (AC自动机)

    Searching the String Time Limit: 7 Seconds                                      Memory Limit: 129872 ...

  2. Elasticsearch document深度剖析

    1. 针对Elasticsearch并发冲突问题,ES内部是如何解决的? 1)ES内部是线程异步并发修改的,是基于_version版本号进行乐观锁并发控制的: 2)若后修改的先到了,那么修改后版本发生 ...

  3. Ubuntu下压缩与解压各种文件的命令

    1.压缩与解压xz文件 (1)压缩 xz -z  filename (2)解压 xz -d  filename.xz 2.压缩与解压tar文件 (1)压缩 tar -cvf  filename(压缩到 ...

  4. hdu3404 Switch lights

    题目描述 题解: 首先,由$SG$定理得SG(x,y)=mex(SG(x',y)^SG(x,y')^SG(x',y'))(x'<x,y'<y) 这里的$SG(x,y)$叫$Nim$积. $ ...

  5. [JOYOI] 1071 LCIS

    拖了好久的LCIS f[i][j]表示a串前i个,b串以b[j]结尾的LCIS长度. 转移时考虑a[i]和b[j]是否相等,如果不等: 那么既然是以j结尾,说明a串前i-1位有一个字符和b匹配了,所以 ...

  6. jdk环境变量配置至第一个简单程序运行成功

    桌面右键单击我的电脑,属性,高级,环境变量,然后再系统变量中配置(也可在用户变量中配置) 在配置环境变量时限查看是否已存在变量名称,有则添加路径,没有则创建再添加路径 /* JAVA_HOME% C: ...

  7. kvm的4中网络模型(qemu-kvm)

    1. 隔离模式(类似vmare中仅主机模式):虚拟机之间组建网络,该模式无法与宿主机通信,无法与其他网络通信,相当于虚拟机只是连接到一台交换机上,所有的虚拟机能够相互通信. 2. 路由模式:相当于虚拟 ...

  8. Shell函数和正则表达式

    1. shell函数 shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数.给这段代码起个名字称为函数名,后续可以直接调用该段代码. 格式: func() {   #指定 ...

  9. CSS3---关于背景

    1.background-origin:设置元素背景图片的原始起始位置. background-origin : border-box | padding-box | content-box;    ...

  10. 条款26:尽可能延后变量定义式的出现时间(Postpone variable definitions as long as possible)

    NOTE : 1.尽可能延后变量定义式的出现时间.这样做可增加程序的清晰度并改善程序效率.