本文相关描述基于sonarqube 6.2版本。

下载地址:

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

Scanner下载网址(用于扫描项目代码质量问题): https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

SonarLint下载网址(用于在开发工具里集成sonar代码扫描):http://www.sonarlint.org/

解压地址(即安装):

我本机安装sonarqube地址为:C:/sonar/sonarqube-6.2

sonar插件

sonar插件的jar目录为: C:/sonar/sonarqube-6.2/lib/bundled-plugins,插件jar下载地址举例:

sonar支持指定开发语言代码扫描插件: https://docs.sonarqube.org/display/PLUG/Plugin+Library

sonar支持java的插件:https://docs.sonarqube.org/display/PLUG/SonarJava

sonar支持git的插件: https://docs.sonarqube.org/display/PLUG/Git+Plugin

sonar支持gitHub的插件: https://docs.sonarqube.org/display/PLUG/GitHub+Plugin

启动sonarqube

1) 创建本地新数据库命名为sonar,本机使用的是MySQL5.7

2) 启动之前修改配置文件C:\sonar\sonarqube-6.2\conf\sonar.properties,主要修改sonar数据库连接配置

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=root
sonar.jdbc.password=123456

3) 本机是win10系统64位机器,所以启动目录为:C:\sonar\sonarqube-6.2\bin\windows-x86-64\StartSonar.bat

4) 启动成功后,黑色cmd小窗口不关闭。

5) 在浏览器地址栏输入http://localhost:9000/about,正常出现sonar的html页面即为成功。

6) 同时查看mysql数据库sonar,发现已经自动创建出了44张表。

扫描项目代码质量——第一种:基本的命令行方式

1) Scanner本机解压地址为:C:\sonar\sonar-scanner-2.8\

2) 修改配置文件:C:\sonar\sonar-scanner-2.8\conf\sonar-scanner.properties,修改项为:

sonar.host.url=http://localhost:9000

3) 添加环境变量path: C:\sonar\sonar-scanner-2.8\bin,测试是否设置成功,新打开一个cmd窗口,输入命令sonar-scanner -h,如果出现-开头的列表提示有哪些命令可用则表示成功。

4) 在被扫描的项目根目录下新建配置文件:sonar-project.properties,内容如下:

sonar.projectKey=admin:MyProject
sonar.projectName=MyProject
sonar.projectVersion=1.0
sonar.sources=src/main/java
sonar.tests=src/test/java
sonar.java.binaries=classes

sonar.language=java

#Tells SonarQube where the unit tests execution reports are
sonar.junit.reportsPath=reports/junit

#Tells SonarQube where the unit tests code coverage report is
sonar.jacoco.reportPath=reports/jacoco/jacoco-ut.exec

#Tells SonarQube where the integration tests code coverage report is
sonar.jacoco.itReportPath=reports/jacoco/jacoco-it.exec

# Encoding of the source files
sonar.sourceEncoding=UTF-8

5) 新打开cmd命令行窗口,至被扫描代码项目根目录下,运行命令sonar-scanner,运行成功提示:

INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------

6) 在浏览器窗口里输入http://localhost:9000,发现被扫描项目数(Projects Analyzed)为1,代表质量扫描成功。

PS: 但是我发现Coverage(代码覆盖率)这一项值是空的!我估计sonar-scanner命令并不包括代码覆盖率的扫描。

扫描项目代码质量——第二种:实现在eclipse里面扫描代码

1) 集成SonarLint到eclipse里面。这里只记录site方式集成,下载plugins和features从网址:http://downloads.sonarsource.com/eclipse/eclipse/,然后将对应的jar包放入eclipse安装目录下的对应文件夹里plugins和features。重启eclipse,Window -> Preferences -> SonarQube表示集成成功。在console视图里,即可看到SonarQube Console下拉选项。

2) 修改maven的settings.xml如示例:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven

3) 修改项目中的pom.xml文件,增加

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <sonar.language>java</sonar.language>
</properties>

PS: 最后我也没搞出来,估计eclipse插件目前并不成熟,因为官网的示例和我真实下载安装的视图和操作都不一样!

扫描项目代码质量——第三种:扫描maven项目

1) 对于maven项目扫描,扫描方式为:打开cmd窗口,到项目存放的pom.xml的目录下(一般也就是项目根目录下),执行命令mvn sonar:sonar。

如果执行不成功,可尝试下面的描述。

Prepare jacoco agent to allow coverage report generation, build the project, and execute the unit tests:
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install

To get coverage per tests information, you will need to activate the profile when running the instrumented tests:
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Pcoverage-per-test

Analyze the project with SonarQube using Maven:
mvn sonar:sonar

2) 在命令行窗口打印出BUILD SUCCESS之后,代表扫描成功。

3) 查看localhost:9000,发现成功生成项目记录,并且Coverage(代码覆盖率)这一项有值。成功!!!

用户管理

1) 必须以管理员用户登录,才可以看见导航栏的Administration。此处可以使用默认管理员admin账户登录(默认密码也是admin)。

2) Administration -> Security -> Users -> Create User

配置项目相关用户权限

配置指定用户可以拥有某个项目的指定权限。

1) Administration -> Projects -> Management

2) 选中某个已存在的项目Actions -> Edit Permissions -> Users -> Search输入框输入用户名三位数以上,在出现的用户上勾选用户相应的项目权限 或者 直接点击Apply Template按钮应用某个已存在的用户权限模版。

sonarqube+Scanner代码质量管理工具的更多相关文章

  1. SonarQube代码质量管理工具的升级(sonarqube6.2 + sonar-scanner-2.8 + MySQL5.6+)

    SonarQube升级注意事项 0. 前提条件 如果之前是使用sonarqube5.2 + sonar-runner-2.4 +MySQL5.5版本或者类似的组合. 安装方法请参照SonarQube代 ...

  2. SonarQube(代码质量管理)配置与使用

    继 Sonarqube(代码质量管理)环境搭建,交大家如何配置与使用Sonarqube 1: 汉化Sonarqube: 找到 Setting --> Update Center --> A ...

  3. 程序员必备!Sonar代码质量管理工具

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

  4. SonarQube代码质量管理工具的安装(Linux)

    一.安装配置sonar 1.Sonar介绍 Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具, ...

  5. SonarQube代码质量管理工具安装与使用(sonarqube5.1.2 + sonar-runner-dist-2.4 + MySQL5.x)

    1. SonarQube安装(sonarqube5.1.2 + sonar-runner-dist-2.4) 1.1 前提条件 1) 已安装Java环境(version:1.7+) 2) 已安装MyS ...

  6. 代码质量管理工具 sonar 配置

    代码检查工具有很多findBugs等等 sonar配置: 1.下载sonar 5.5, 解压,运行 sonarqube-5.5\bin\windows-x86-64\StartSonar.bat , ...

  7. Sonar代码质量管理工具

    最近上线了,Sonar代码扫描工具: 与jenkins集成: 实现自动扫描: 下面来简单聊聊Sonar能解决什么问题: ---------------------- Sonar简介 Sonar是一个用 ...

  8. SonarQube(代码质量管理)环境搭建

    继 Centos6.6安装Subversion版本控制工具(Subversion + Apache + jsvnadmin) 后,搭建代码质量管理环境 IP:10.0.210.112 环境:Cento ...

  9. 代码质量管理工具——SonarQube

    写在前面 SonarQube(简称Sonar)是管理代码质量的开放平台,它可以快速地对代码质量进行分析,并给出合理的解决方案,提高管理效率,保证代码质量. SonarQube的流行,在于以下几点: 开 ...

随机推荐

  1. ZOJ 3931 Exact Compression

    题目看了半小时才看懂的. 题意:首先根据给出的序列,构造出哈夫曼树,构造出来的是一棵二叉树,每个节点都有一个权值,每个节点的两个儿子只能取一个,问能否使取出来的节点权值之和刚好等于e. 这样一分析就很 ...

  2. jquery中,使用append增加元素时,该元素的绑定监听事件失效

    举例:如果在一个<div id="resultArea"></div>中,通过append添加一个id="checkOutTip"的文本 ...

  3. html中的图片、css、js等路径加载问题

    网页文件的存取路径有3种:物理路径.绝对路径和相对路径. 物理路径就是你的文件放在主机上的具体位置,例如:D:\\image\\1.jpg 这种格式,该方法可以很快确定出你的文件,但是在网页显示路径基 ...

  4. 对position的理解

    作者:zccst 先看看手册 值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "t ...

  5. ARM的启动代码(1):介绍(转)

    源:ARM的启动代码(1):介绍 很多朋友搞嵌入式,写起代码来一点问题没有,到最后上板子调试的时候,挂了.究其原因,还是对芯片的启动地址.启动方式.bootloader和操作系统的衔接出了问题.今天就 ...

  6. uCOS-iii 中定义的一些常量

    uCOS-iii 中定义的一些常量 uCOS-iii 中有许多宏定义的量,这些量不需要全部记住是什么意思,因为在阅读代码的时候可以选中变量或宏定义然后右键查看定义,就可以知道它代表的什么意思.但是如果 ...

  7. javap -s 查看java方法签名

    工程先用eclipse生成class目录,转到class目录下执行: javap -s com.example.hellojni.MainActivity Compiled from "Ma ...

  8. osgEarth基础入门(转载)

    osgEarth基础入门 osgEarth是基于三维引擎osg开发的三维数字地球引擎库,在osg基础上实现了瓦片调度插件,可选的四叉树调度插件,更多的地理数据加载插件(包括GDAL,ogr,WMS,T ...

  9. FlexGrid简单demo

    1.首先加入以下代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <hea ...

  10. CSS3 Transitions 你可能不知道的知识点

    如何临时让transition失效 我们给一个element设置了transition效果,但某些特殊情况,我们希望让transition临时失效.我们第一反应就是先移除transition设置,等其 ...