使用sonar进行代码质量检查

摘要:
我这次检查的项目是jdk1.7)声纳官方网站地址,sonarqube-6.7)配置声纳文件的数据库信息(如果不使用MySQL或其他数据库,请跳过此步骤):在sonarqube-6.7conf下打开sonarqube-6.7conf,查找定义MySQL的位置:

最近公司要求,学习了一下使用sonar进行代码分析检查。其中走了许多坑,配置也崩溃好几次。。。因此写下详细步骤以防以后再碰到这样的坑

一、安装Sonar

环境:Windows10,sonarqube6.7,java1.8,MySQL5.7.1  (注:用来检查java1.8以下的项目依旧可以使用,但是环境变量得是1.8的才能启动,我本次使用检查的项目就是jdk1.7)

Sonar官网地址:https://www.sonarqube.org/downloads/,首页截图如下:

使用sonar进行代码质量检查第1张

1、配置jdk1.8的环境

2、安装mysql数据库(也可以使用自带的数据库) 

  配置数据库用户:

CREATE DATABASE sonarCHARACTER SET utf8 COLLATE utf8_general_ci;   
  
CREATE USER 'sonar'IDENTIFIED BY 'sonar';  
  
GRANT ALL ON sonar.* TO'sonar'@'%' IDENTIFIED BY 'sonar';  
  
GRANT ALL ON sonar.* TO'sonar'@'localhost' IDENTIFIED BY 'sonar';  

3、下载sonarqube6.7,解压到自己指定的目录下(我的路径是:D:sonarqube-6.7)

   配置sonar文件数据库信息(如果不用mysql或其他数据库的可以跳过本步骤):在D:sonarqube-6.7conf 下打开sonar.properties 找到mysql定义的地方,修改为:

  

sonar.jdbc.username=sonar  
  
sonar.jdbc.password=sonar  
  
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false  
  
sonar.web.port=9000  

  此处的用户名密码即为刚才创建的,9000端口是启动服务器后访问的端口地址,也可以设置为其他的

4、启动运行sonarqube6.7

  在安装路径D:sonarqube-6.7in下会有不同操作系统对应的版本,,找到自己对应的版本,我的是win 64 ,进入之后点击启动服务批处理文件 D:sonarqube-6.7inwindows-x86-64

使用sonar进行代码质量检查第2张

  如果不出意外的话,在大概几十秒之后可以在命令行窗口看到启动成功的信息如下:

使用sonar进行代码质量检查第3张

    PS:我在启动时遇到了几个错误,大致解决方法可以分为几类:

      1 .连接mysql数据库出错。。。这个时候先确定mysql是否可以正常连接,我当时就是因为没有启动mysql服务就 启动sonarqube6.7了。。其他情况还可能使mysql的驱动版本不对,,这个时候D:sonarqube-6.7libjdbcmysql 下面看看这个jar包对应不。

     2.可能是因为jdk环境不对。。。我电脑上由于项目版本较多,安装了jdk1.6、1.7、1.8的,可以直接在cmd窗口输入java -version,如果不是1.8的话需要改为1.8

      修改方式:修改环境变量中JAVA_HOME是1.8的路径。。我当时修改成了1.8的还是不对,,然后搜索一波,发现我1.7的是使用安装包自动安装的,因此在C盘下有java.exe,直接删除即可。

 启动成功之后访问localhost:9000即可看到页面

使用sonar进行代码质量检查第4张

 5、下载并配置插件sonar-scanner-2.6     下载地址:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

使用sonar进行代码质量检查第5张

此处可以看到当前最新版本是3.0.3的2018-01-09,我当时下载的时候下载的版本是2.6的,,大家可以在以前版本里面找到,,不过下载最新的应该也没问题(并没有试过,大致猜测哈)

下载之后是个zip压缩包,将其解压到自己指定路径下。我的路径是D: oolsonar-scanner-2.6。

 然后直接在环境变量的path下面新建一个环境变量,指向D: oolsonar-scanner-2.6in    这一步是保证后面使用插件命令可以找到目录

下载完后找到配置文件的路径,编辑它D: oolsonar-scanner-2.6confsonar-scanner.properties,,我直接加上mysql的即可

#Configure here general information about the environment, such as SonarQube DB details for example
#No information about specific project should appear here

#----- Default SonarQube server
#sonar.host.url=http://localhost:9000

#----- Default source code encoding
#sonar.sourceEncoding=UTF-8

#----- Global database settings (not used for SonarQube 5.2+)
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

#----- PostgreSQL
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar

#----- MySQL
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8

#----- Oracle
#sonar.jdbc.url=jdbc:oracle:thin:@localhost/XE

#----- Microsoft SQLServer
#sonar.jdbc.url=jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor

6、开始测试项目

      到自己要测试的项目根路径下面新建一个sonar-project.properties文件  。比如我要测试的项目路径是D:JavaTest,,就在Test下建立sonar-project.properties文件,文件中配置要测试的信息,如下:

#required metadata 
#projectKey项目的唯一标识,不能重复

sonar.projectKey=testuser
sonar.projectName=testuser
sonar.projectVersion=1.0  
sonar.sourceEncoding=UTF-8 
sonar.modules=java-module
sonar.java.binaries=.
#,javascript-module,html-module 
  
# Java module 
java-module.sonar.projectName=Java Module 
java-module.sonar.language=java 
# .表示projectBaseDir指定的目录 
java-module.sonar.sources=. 
java-module.sonar.projectBaseDir=src/main/java 
sonar.binaries=classes
   
# JavaScript module 
#javascript-module.sonar.projectName=JavaScript Module 
#javascript-module.sonar.language=js 
#javascript-module.sonar.sources=js 
#javascript-module.sonar.projectBaseDir=src/main/webapp
   
# Html module 
#html-module.sonar.projectName=Html Module 
#html-module.sonar.language=web 
#html-module.sonar.sources=pages 
#html-module.sonar.projectBaseDir=src/main/webapp

  此处对HTML,JavaScript的配置我直接删除了。。在代码中,红色的一句我暂时也没明白什么意思,,但是最开始没加的时候启动检测会报错

使用sonar进行代码质量检查第6张

后面不管我加上什么文件名都给我说无法匹配。。所以我就用.来暂时用着,,,大家有明白的可以告诉我一下呀。

开始测试代码了:在项目的根目录打开命令行窗口,执行:sonar-runner命令,,如果前面都没错误的话,你将会看到命令行不断地分析代码信息。。最后完成结果如下

使用sonar进行代码质量检查第7张

。。这时就代表你检查成功啦。。你可以在 http://localhost:9000/projects?sort=-analysis_date 中看到结果啦:

使用sonar进行代码质量检查第8张

免责声明:文章转载自《使用sonar进行代码质量检查》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LabVIEW 关于定时的研究Linux CentOS中使用SQL*Plus启动和关闭数据库下篇

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

相关文章

IndexedDB:不仅仅是客户端持久化缓存技术ThingJS

本地缓存技术提升用户访问体验 IndexedDB(客户端缓存持久化)技术优势 大型3D项目本地缓存技术实测 简介:为提升用户访问体验,缩短项目加载时间,ThingJS平台推出3D场景本地缓存技术:IndexedDB,也称客户端缓存持久化技术。通俗来说,IndexedDB就是浏览器提供的本地数据库,它可以被网页脚本创建和操作,使用JSON数据格式。下面详...

MySQL安装辛路

MySQL系统反反复复装了好多次,包括虚拟机和主机中。 空白安装还是很容易的,就是卸载麻烦必须按部就班。 1、清除 服务器配置 (可以运行配置程序清除) 2、卸载程序(控制面板中的卸载或直接运行安装程序) 3、清除服务数据,如果默认安装应该在 (C:\Documents and Settings\All Users\Application Data\MyS...

mysql反向解析导致连接缓慢

Content 0.序 1.问题 2.原因 3.解决办法 0.序 本文主要是记录Mysql安装在 VMWARE下,本地连接Mysql速度很慢的原因及解决办法。 1.问题 本地的一个网站使用mysql数据库,局域网内访问时连接速度很慢,每次都要过十几秒后才能连上,只要连接上了速度正常。 2.原因 在安装Mysql时候,默认会打开反向解析,因此局域网访问MyS...

python mysql 封装

封装 观察前面的文件发现,除了sql语句及参数不同,其它语句都是一样的 创建MysqlHelper.py文件,定义类 #encoding=utf8 import MySQLdb class MysqlHelper(): def __init__(self,host,port,db,user,passwd,charset='utf8'):...

mysql 判断null 和 空字符串

mysql 判断null 和 空字符串 1.在mysql中null 不能使用任何运算符与其他字段或者变量(函数、存储过程)进行运算。若使用运算数据就可能会有问题。 2.对null 的判断: 创建一个user表:id 主健 name 可以为空 select * from user; insert into user values('33',null); #...

正确的SpringMVC进阶案例详解,60%的人没搞懂

  代码实现 springMVC的配置: @Configuration @ComponentScan(basePackages={"com.czxy.demo1.controller"}) public class MVCConfiguration { /** * 设置了一个视图解析器,交给spring管理 * @retu...