Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。

与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。

进入主题,安装Sonar:

前提条件:安装好Mysql、Jdk,本次采用的是Mysql5.7和Jdk1.8版本,关于mysql和jdk的配置不在赘述,记得启动mysql。(数据库安装

数据库配置

mysql中需要创建对应的sonar账号,创建如下:

#新增用户,由于这个是变化的,建议导出数据库mysql表中的语句,将root的insert语句更新下进行插入操作。
insert into user(Host,User,authentication_string) values("%","sonar",("123456"));
#用户授权-可以远程访问数据库
grant all privileges on *.* to sonar@"%" identified by "123456" ;
#本地用户授权-可以访问本地的所有数据库
grant all privileges on *.* to sonar@localhost identified by "123456" ;#设置完成后,需要执行以下命令生效flush privileges ;

sonnar配置

Sonarqube(本次使用版本sonarqube-6.7.6)

下载地址:https://www.sonarqube.org/downloads/

Sonar-Scanner(针对不同的操作系统下载对应的版本)

下载地址:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

下载后,开始对配置文件进行修改,如下

A、Sonarqube,修改conf—>sonar.properties修改:

 sonar.jdbc.username=sonar     #连接数据库用户名
 sonar.jdbc.password=123456    #连接数据库密码
 sonar.jdbc.url=jdbc:mysql://10.10.126.234:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false  #连接数据库地址及表名
 sonar.web.host=10.10.126.234   #服务器/本机的ip
 sonar.web.port=9100            #服务器/本机的端口
 sonar.ce.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError      #设置内存占用最大值

host、port就是sonar服务启动的url,服务启动后,可直接访问   http://10.10.126.234:9100。

启动sonarQube:Sonarqube,运行bin—>windows-x86-32—>StartSonar.bat:

访问Url链接,界面如下:(默认登录密码账号密码是admin      admin)

B、Sonar-Scanner,修改conf—>sonar-scanner.properties修改:

 sonar.host.url=http://10.10.126.234:9100     #----- Default SonarQube server
 sonar.sourceEncoding=UTF-8    #----- Default source code encoding
 sonar.jdbc.username=sonar     #数据库用户名
 sonar.jdbc.password=123456    #数据库密码
 sonar.jdbc.url=jdbc:mysql://10.10.126.234:3306/sonar?useUnicode=true&characterEncoding=utf8 #----- MySQL

sonar-scanner需要配置环境变量,设置方式如下图:

查看配置是否正确,使用命令:

sonar-scanner --verson 

进入需要执行审查的代码下,启动命令:

sonar-scanner -X

一段时间后,即可在sonarqube的链接下看到审查结果。

项目中调用sonar扫描配置如下:

在单个模块中的sonar-project.properties配置(这里以其中一个为例):

# projectKey项目的唯一标识,不能重复,projectName在sonar服务端显示的项目名称。
sonar.projectKey=20190322-test1
sonar.projectName=-test1
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-
sonar.sources=src                            #当前文件中需要分析的源码文件名,一般是src
sonar.java.binaries=target/classes           #二进制文件所在位置(windows系统中,用“/”代替“\”)
sonar.java.source=1.8                        #标注使用的jdk的版本。

如在一个项目中有多个文件,可在最外层调用,对应sonar-project.properties配置如下(这里的模块中有4个不同的子模块):

#required metadata
#projectKey项目的唯一标识,不能重复
sonar.projectKey=v1.2-test
sonar.projectName=v1.2-test
sonar.projectVersion=1.1
sonar.sourceEncoding=UTF-8
sonar.java.source=1.8
sonar.modules=moopo-server,moopo-manage,moopo-h5,moopo-collect

# moopo-server
moopo-server.sonar.projectName=20190322-test1
moopo-server.sonar.sources=moopo-server/src
moopo-server.sonar.java.binaries=moopo-server/target/classes 

# moopo-collect
moopo-collect.sonar.projectName=20190322-test2
moopo-collect.sonar.sources=moopo-collect/src
moopo-collect.sonar.java.binaries=moopo-collect/target/classes 

# moopo-manage
moopo-manage.sonar.projectName=20190322-test3
moopo-manage.sonar.sources=moopo-manage/src
moopo-manage.sonar.java.binaries=moopo-manage/bin

# moopo-h5
moopo-h5.sonar.projectName=20190322-test4
moopo-h5.sonar.sources=moopo-h5/src
moopo-h5.sonar.java.binaries=moopo-h5/bin

执行结果:

异常解决:

1、sonarqube插件异常(需要更新或替换或增加),将提示的插件下载后,放到sonarqube—>extensions—>downloads中,重新运行sonarqube,该插件会自动加载到plugins文件中。

2、部分异常时,尝试将SCM的状态重置下,如下图:

更多参考网址:

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins

http://www.cnblogs.com/dengshihuang/p/8066914.html

https://kefeng.wang/2017/01/10/jenkins-sonar/

https://my.oschina.net/u/237688/blog/1588495

https://www.jianshu.com/p/3b1c7eb17cdc

其他(maven项目中改配置及举例):https://github.com/limiaogithub/test_case_sonar_jacoco

Sonar 配置及部署(windows系统)的更多相关文章

  1. hadoop集群配置和在windows系统上运用java操作hdfs

    安装 配置 概念 hadoop常用shell命令 使用java操作hadoop 本文介绍hadoop集群配置和在windows系统上运用java操作hdfs 安装 http://mirror.bit. ...

  2. Sonar 配置及部署(Linux系统)

    之前在windows系统上部署了sonar代码审查,由于工作需要,需要在Linux环境再部署一套. 其实,部署的大体都是大同小异的,这里罗列下各个配置,与windows部署不同的地方会重点说一下. 数 ...

  3. ASP .NET CORE MVC 部署Windows 系统上 IIS具体步骤---.Net Core 部署到 IIS位系统中的步骤

    一.IIS 配置 启用 Web 服务器 (IIS) 角色并建立角色服务. 1.Windows Ddesktop 桌面操作系统(win7及更高版本) 导航到“控制面板” > “程序” > “ ...

  4. mongodb基础环境部署(windows系统下)

    Normal 0 false 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNorma ...

  5. Tomcat安装、配置和部署笔记

    首先从Apache的官方网站(http://tomcat.apache.org/)下载Tomcat.有安装版和解压版两种,我个人喜欢用解压版. Tomcat安装(绿色版安装) 1.将下载的Tomcat ...

  6. Tomcat安装、配置和部署

    首先从Apache的官方网站(http://tomcat.apache.org/)下载Tomcat.有安装版和解压版两种,本文档介绍绿色版安装方法. 一.Tomcat安装(绿色版安装) 1.将下载的T ...

  7. Linode KVM安装Windows系统的设置方法

    以前我们用老的Linode VPS主机的时候是采用的XEN架构的,如今我们新注册账户,以及新开的机器是KVM架构.根据后台的设置,我们看到好多网友有在LINODE中安装WINDOWS系统,理论上是可以 ...

  8. Node.js的安装与使用-Windows系统

    首先到官网下载node.js http://nodejs.cn 下载完成后一直下一步Next即可安装完成,路径可以自己设置 然后配置环境变量,将node安装的目录配置到Path中 例如: cmd打开命 ...

  9. windows系统dokuwiki安装部署设置 xampp环境配置

    简单记录一次安装dokuwiki的过程 dokuwiki下载 dokuwiki下载地址 https://download.dokuwiki.org/ 下载前有一些可选项目,版本.语言.插件,可以按照需 ...

随机推荐

  1. less命令查看文件时的常用操作

    下键或者回车:往下一行 D:往下半页 空格和f:往下一页 上键:往上一行 B:往上一页 shift+G:直接切到末尾 ?+搜索条件:从下往上搜索 /+搜索条件:从上往下搜索

  2. 上海嘉韦思杯部分writeup

    第二题 打开赛题,看到加密字符串,进行base64解密,发现是JSFUCK,再次解密,控制台得到flag. 第三题 打开频谱图得到flag,flag中有三个_,联想到音频文件详细信息中的三个zero, ...

  3. Android 崩溃优化

    Android 两种崩溃 android崩溃分为Java崩溃和Nativie崩溃 java崩溃就是java代码中,出现未捕获的异常,导致程序异常退出 Native崩溃一般是因为在Native代码中访问 ...

  4. window系统下搭建本地的NuGet Server

    1. NuGet.Config文件所在的目录: C:\Users\xxx\AppData\Roaming\NuGet 2.将nupkg为结尾的文件放在 项目的Packages目录下.(注意是和web. ...

  5. jsp四大作用域

  6. 测试12.2.0.1RAC PDB级别的Failover

    关键步骤:手工添加服务名A并启动(已验证默认的服务名测试验证无法实现Failover) [oracle@db90 ~]$ srvctl add service -db orcl -service A ...

  7. sort();对结构体数组的排序

    sort(); 位于C++ 头文件 #include<algorithm>中 数组排序(从小到大,从大到小) 结构体排序(数字参数从大到小...字符串为参数 字典序....) 代码示例:( ...

  8. css 快捷修改 checkbox 及 radio的背景图

    在CSS内选择要修改的input input[type=checkbox]:disabled{ //input类型等于复选框并且是disabled状态的所有(根据情况自由指定) -webkit-app ...

  9. PeopleSoft Excel To CI

    Excel to CI 链接信息要注意,HTTP还是HTTPS, 端口号从链接可以看到,没有的话可能是默认80端口. 像一下这个页面也可以用CI 导入数据(secondary page)

  10. 压力(性能)测试及jmeter的使用

    github中标注lab3的文档记录了我的详细的实验过程,有关环境搭建.过程理解.实验结果与遇到的问题等,希望可以帮到初学者. 欢迎交流- https://github.com/fogmisty/So ...