一、简介

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. 485. Max Consecutive Ones@python

    Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...

  2. 文件默认权限umask掩码

    umask命令 作用:用于显示.设置文件的缺省权限 格式:umask   [-S] -S表示以rwx形式显示新建文件缺省权限 系统的默认掩码是0022 文件创建时的默认权限 = 0666 - umas ...

  3. root连接ubuntu18.04“拒绝访问”的解决方法

    1.设置root账户 sudo passwd root 2.ssh远程登陆拒绝访问:修改SSH配置文件 sudo vim /etc/ssh/sshd_config 找到并用#注释掉这行:PermitR ...

  4. 一篇文章掌握nightwatch自动化测试

    nightwatch.js是一个web-ui自动化测试框架,被vue-cli深度整合进来.如果一个项目是基于vue-cli搭建的,基本可以做到开箱即用. 但是我们不可能一直都使用vue-cli.因为它 ...

  5. Cable master 求电缆的最大长度(二分法)

    Description Inhabitants of the Wonderland have decided to hold a regional programming contest. The J ...

  6. kafka flumn sparkstreaming java实现监听文件夹内容保存到Phoenix中

    ps:具体Kafka Flumn SparkStreaming的使用  参考前几篇博客 2.4.6.4.1 配置启动Kafka (1) 在slave机器上配置broker 1) 点击CDH上的kafk ...

  7. luogu3563 逛公园

    两遍 spfa 然后建立分层图拓扑排序 dp 一下. 写得很差劲.效率很低. 时间复杂度 \(\mathrm{O}(Tnk)\). 参见这里秒懂. #include <iostream> ...

  8. python re 正则提取中文

    需求: 提取文本中的中文和数字字母(大小写都要),即相当于删除所有标点符号. 其中new是原字符串 news = re.findall(r'[\u4e00-\u9fa5a-zA-Z0-9]',new)

  9. zoj 1763 A Simple Question of Chemistry

    A Simple Question of Chemistry Time Limit: 2 Seconds      Memory Limit: 65536 KB Your chemistry lab ...

  10. PHP中的字符串替换(str_replace)

    /*替换 字符串处理  str_replace() */ $num = 0; $str = "http://www.phpbrother.net/php/demo.php";$st ...