Sonar本地环境搭建

摘要:
一个新项目准备上线测试。为了在测试前进行代码演练并了解项目的当前质量,我们在当地建立了一套声纳环境。步骤2:在Eclipse上运行声纳,Eclipse执行maven命令:sonar:sonar:,然后转到localhost:9000查看它。这是可以的:如果我们想在Eclipse中直接查看声纳的问题,我们可以右键单击项目,如下图所示:然后再次右键单击该项目进行分析,如下图:分析结果:这里,声纳的本地环境已经完全建立!

一个新项目准备上线提测了,为了在提测之前做一下代码走查,同时了解项目目前的质量情况,就在本地搭建了一套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;

这里写图片描述

至此数据库已经建好了。
这里写图片描述

  1. 安装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的解析,请看下小节。

  1. 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&amp;characterEncoding=utf8&amp;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本地环境搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringBoot-Mybatis_Plus学习记录之公共字段自动填充Sonar安装配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Navicat for MySQL 使用SSH方式链接远程数据库(二)

这里我们使用SSH连接远程mysql数据库 2 SSH这种方式,可以使我们连接到远程服务器,但是现在并不能访问数据库,因为我们还没有连接到数据库...

mybatis入门(七)

mybatis入门--添加一个用户 //添加用户 @Test public void insertUserTest() throwsIOException { //通过工厂得到SqlSession SqlSession sqlSession = null; try{ //myb...

mysql基本操作(数据库,表,字段,记录)

目录 连接数据库 用户信息管理 数据库的基本操作 表的基本操作 连接数据库 1)游客登陆(不一定能登入,登入了也啥都不能干) >: mysql 2)账号密码登录 >: mysql -u root -p 再输入密码,没有任何提示,没有密码直接回车 3)连接指定服务器的mysql >: mysql -h ip地址 -P 端口号...

oracle数据库导入dmp文件

最近在自己的机子上安装了oracle11g,今天把项目的测试数据库给导入进来了,方便在本地跑起来调试。下面记录一下过程: 1,导出测试数据库的文件; 这个是在公司三楼的一台机子上,用plsql中的工具:tools ->export tables-> Oracle Export 选择选项导出.dmp文件直接导出到桌面上的,文件太大,没法复制过来,是...

Mac 终端执行sql命令

https://www.cnblogs.com/sbj-dawn/p/6905930.html、 远程登录MYSQL数据库 > mysql -u username -p -h hostname 例如:>masql -u root -p student show tables; 显示所有的表 show databases;显示所有的dat...

基于 自己定义注解 和 aop 实现使用memcache 对数据库的缓存 演示样例

好久没更新blog了,在新公司打拼了两个月,每天都从早忙到晚,学到了非常多东西,可是没有时间来更新blog了。。。。 以下開始解说这次的主题 公司老大让我研究 ocs 就是阿里云的 开放缓存服务点击打开链接 事实上就是一个memcache的服务 memchech 就是用内存来存放 key -value 在一些情况下就不必频繁的訪问 数据库了(事实...