Sonar本地环境搭建
一个新项目准备上线提测了,为了在提测之前做一下代码走查,同时了解项目目前的质量情况,就在本地搭建了一套sonar环境。搭建的过程中遇到了很多问题,sonar官方已不再维护Eclipse的svn插件,所以之前很多网上的教程都存在问题了。通过自己的摸索,最后还是成功搭建好了环境。下面我们开始搭建吧。
1 准备阶段
(1)下载MySQL,地址:http://dev.mysql.com/downloads/installer/
(2)下载SonarQube,地址:http://www.sonarqube.org/downloads/
(3) 下载SonarQube中文插件,地址:http://download.csdn.net/detail/u010218242/9272667
1.2 环境准备
(1)确保本机已经安装JDK
(2)安装数据库
由于sonar需要数据库支持,我们首先安装数据库,这里使用mysql(当然你也可以安装其他数据库)。
第一步:安装mysql,安装流程就不说了,这里特别需要注意的是选择编码格式的时候一定要选择utf8.
第二步:使用命令创建数据库,名字为sonar:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
第三步:创建一个sonar用户并把这个用户的密码设置为soanr:
CREATE USER ‘sonar’ IDENTIFIED BY ‘sonar’;
第四步:将第二步中创建的sonar数据库的所有权限赋给第三步中创建的sonar用户:
GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@’localhost’ IDENTIFIED BY ‘sonar’;
FLUSH PRIVILEGES;
至此数据库已经建好了。
- 安装SonarQube
第一步:将下载的sonarqube解压到你的本地目录
第二步:修改配置文件,打开conf目录下的日志文件,然后加入以下信息:
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
第三步:bin目录下会有各种平台的启动脚本,我用的windows-x86-32的:
点击StartSonar.bat,开始启动。第一次启动需要初始化数据库,需要等一会儿:
第四步:在浏览器中打开http://localhost:9000/,正常安装的情况会显示如下界面:
至此,我们的SonarQube已经安装成功了,如果想要使用SonarQube平台管理我们的代码质量,还需要安装代码解析工具。通常我们使用maven来集成sonar的解析,请看下小节。
- Maven中集成sonar
第一步:在maven的setting.xml文件中加入以下内容:
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true</sonar.jdbc.url>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
第二步:接下来在sonarqube启动的情况下,进入maven项目中,执行mvn sonar:sonar命令,等待结束。那么在http://localhost:9000下就可以查看sonar分析的结果了。
对于开发者来说,如果我们能够在Eclipse中直接集成sonar那是更加方便了,我们可以直接在Eclipse中查看sonar问题。接下来我们演示如何在Eclipse中集成sonar。
4. Eclipse集成sonar
第一步:安装sonar插件,打开Help > Install New Software… ,输入下面这个网址 (http://downloads.sonarsource.com/eclipse/eclipse/),接下来就会显示下面这个界面内容
然后点击next安装就OK了,完成安装之后会提示你重新启动。
第二步:Eclipse上运行sonar,Eclipse执行maven命令:sonar:sonar:
再去locahost:9000下面查看,已经ok:
如果我们想直接在Eclipse中查看sonar问题,我们点击工程右键,如下图:
然后再次右击工程,进行解析,如下图:
分析结果:
到这里,sonar本地环境搭建已经完全ok!
总结:
在本地搭建sonar环境的过程当中,经历了各种问题,版本问题、官方sonar插件不维护问题…通过各种尝试终于搞定,如果你安装的过程当中出现了什么问题可以联系我。
Sonar本地环境搭建的更多相关文章
- Docker下kafka学习三部曲之二:本地环境搭建
在上一章< Docker下kafka学习,三部曲之一:极速体验kafka>中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来 ...
- AngularJS2之本地环境搭建
前言:本来准备初探AngularJS2,结果成了复习git和再探node git的两个常见问题:一.github上传时出现error: src refspec master does not matc ...
- .NET Exceptionless 日志收集框架本地环境搭建
一.简介 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF,Console,MVC 等 ...
- Flink从入门到放弃(入门篇2)-本地环境搭建&构建第一个Flink应用
戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...
- 以太坊remix-ide本地环境搭建
remix-ide简介 remix-ide是一款以太坊官方solisity语言的在线IDE,可用于智能合约的编写.测试与部署,不过某些时候可能是在离线环境下工作或者受限于网速原因,使用在线remi ...
- jekyll本地环境搭建(Windows)
序:最近一直在搞Github建站,所以一直没机会写文章,那边的环境虽然搞好了,但是网站的界面却是个问题,不想用别人的,总想自己设计个,却感觉没经验吧,就一直耽搁了.所以也就没心情在那边写文章,很久没写 ...
- CC2B本地环境搭建步骤及部署问题解决
由于最近的项目是之前没接触过的netbeans+glassfish,记录一下最近在工作中搭建本地环境的步骤及遇到的一些问题解决方法: 1.配置java jdk 此过程中遇到一个问题就是在配置系统环境变 ...
- Redis本地环境搭建
Windows 下环境搭建 1. 设置hosts set duapphosts=127.0.0.1 sqld.duapp.com set redisduapphosts=127.0.0.1 redis ...
- Laravel本地环境搭建:Homestead开发环境的部署
Laravel框架在php开发过程是不断进行优化的,当然也包括了本地环境的开发,下面我们就来具体看看laravel框架中的Homestead 开发环境的部署内容. 首先白以下几个概念 VirtualB ...
随机推荐
- android Service oncreate 在UI线程 何时用service,何时用thread
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 服务的生命周期 各个方法 都是在主线程中的. 这里的操作可以导致主线程阻塞. 这些方法, ...
- BZOJ.4939.[Ynoi2016]掉进兔子洞(莫队 bitset 分组询问)
BZOJ 洛谷 删掉的数即三个区间数的并,想到bitset:查多个区间的数,想到莫队. 考虑bitset的每一位如何对应每个数的不同出现次数.只要离散化后不去重,每次记录time就可以了. 但是如果对 ...
- BZOJ.2462.[BeiJing2011]矩阵模板(二维Hash)
题目链接 序列上的Hash和前缀和差不多,二维Hash也和二维前缀和差不多了. 预处理大矩阵所有r*c的小矩阵hash值,再对询问的矩阵Hash. 类比于序列上\(s[r]-s[l-1]*pow[r- ...
- Android任务和返回栈完全解析(转)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/41087993 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...
- A brief CRC tutorial
https://www.kernel.org/doc/Documentation/crc32.txt A brief CRC tutorial. A CRC is a long-division re ...
- C++中的vector&find_if
<STL應用> vector & find_if 看到有人問有個名為C的struct如下 code: struct C { int v1; int v2; }; 應用在vecto ...
- future封装了callable,thread封装future。
三.使用Callable,Future返回结果 总结:future封装了callable,thread封装future.将callable的返回结果封装在future中,thread封装future, ...
- ASIHTTPRequest-断点续传需要原网站支持!
转:http://zyc-to.blog.163.com/blog/static/17152400201110221114526/ 从0.94版本开始,ASIHTTPRequest可以恢复中断的下载 ...
- Ubuntu Linux下安装Oracle JDK
from://http://blog.csdn.net/gobitan/article/details/24322561 Ubuntu Linux下安装Oracle JDK Dennis Hu 201 ...
- nginx网站攻击防护
1.上上个月架构全部迁移上云以后,总的来说比较稳定,业务量也上来,可爱的坏人也来了,7X24小时不停恶意攻击我的网站,第一次收到报警是网站流入流量1分钟以内连续3次超过1000000bps,换算下1M ...