SonarQube的目的是对软件项目的代码进行分析,在开发人员提交代码之际就尽早发现代码的质量问题,并提示(或强制要求)开发人员改进。

SonarQube由以下几个部分组成:

1. SonarQube Platform,就是SonarQube服务器,这是SonarQube运行的基础。

首先下载并解压缩SonarQube的发布软件;
必要的情况下配置解压缩目录下的sonarqube/conf/sonar.properties文件;

启动SonarQube Platform:

  • Windows下执行StartSonar.bat
  • Linux下执行sonarqube/bin/sonar.sh start console

启动成功,可以访问默认主页http://localhost:9000/,登录的用户名/密码为admin/admin。

注意,在实验验证阶段,SonarQube Platform默认使用H2数据库;但是在生产环境中,还需要使用MySQL等其他企业级数据库服务器。

2. SonarQube Scanner,即分析项目代码的默认启动器

首先下载并解压缩SonarQube Scanner;
必要情况下,配置文件sonar-scanner/conf/sonar-scanner.properties;建议配置如下:

  • 每次提交前的分析,设置参数sonar.analysis.mode=preview
  • 每天都要执行的CI分析,设置参数sonar.analysis.mode=publish

启动SonarQube Scanner:

  • Windows下执行sonar-scanner.bat
  • Linux下执行sonar-scanner/bin/sonar-scanner

3.分析项目

首先根据项目代码的编程语言,在线安装必要的SonarQube插件,以支持项目使用的编程语言;
然后,cd到要分析的项目目录下,如some/projects/java/myproject/
在项目目录下创建并配置sonar-project.properties文件如下:

sonar.projectKey=org.sonarqube:it-sonar-examples
sonar.projectName=IT Sonar Examples Quality
sonar.projectVersion=1.0
sonar.sources=.
sonar.sourceEncoding=UTF-8
sonar.language=text

执行SonarQube Scanner启动分析,就可以完成对项目代码的分析。

下面以Maven项目为例,详细介绍用法:

对于Maven项目,除了使用上文提到的SonarQube Scanner进行分析之外,还可以使用maven-sonar-plugin插件进行分析。使用maven-sonar-plugin插件的步骤如下:

1) 配置Maven的settings.xml

<settings><pluginGroups><pluginGroup>org.sonarsource.scanner.maven</pluginGroup></pluginGroups><profiles><profile><id>sonar</id><activation><activeByDefault>true</activeByDefault></activation><properties><!-- Optional URL to server. Default value is http://localhost:9000 --><sonar.host.url>http://myserver:9000</sonar.host.url></properties></profile></profiles>
</settings>

2) 配置Maven项目的pom.xml文件

  <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><sonar.language>java</sonar.language></properties><build><pluginManagement><plugins><plugin><groupId>org.sonarsource.scanner.maven</groupId><artifactId>sonar-maven-plugin</artifactId><version>3.1.1</version></plugin></plugins></pluginManagement>
</build>

3) 使用maven-sonar-plugin插件以进行SonarQube分析
mvn clean verify sonar:sonar

或mvn clean install org.sonarsource.scanner.maven:sonar-maven-plugin:3.1.1:sonar

4) 查看分析结果

打开SonarQube服务器的主页http://localhost:9000/

代码质量管理工具SonarQube详解相关推荐

  1. 代码质量管理工具SonarQube概述

    SonarQube,即Sonar,是一款管理代码质量的开放平台,一个基于Web的应用软件. SonarQube能够从如下7个方面跟踪代码质量: 架构设计 编码规则Coding rules 代码注释co ...

  2. 消除冗长Java代码的工具——Lombok详解

    消除冗长Java代码的工具--Lombok详解 文章目录 消除冗长Java代码的工具--Lombok详解 什么是Lombok Lombok的作用 Lombok常用注解 Lombok安装 什么是Lomb ...

  3. 代码质量管理工具:SonarQube常见的问题及正确解决方案

    代码质量管理工具:SonarQube常见的问题及正确解决方案 SonarQube 简介 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以 ...

  4. SonarQube:开源的代码质量管理工具

    SonarQube是一个开源的代码质量管理工具,如下图所示,它覆盖了代码质量的7个方面: SonarQube的主要特性: 通过插件扩展 支持新的编程语言.添加规则引擎.计算更复杂的度量指标,这些都可以 ...

  5. PowerShell攻防进阶篇:nishang工具用法详解

    PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...

  6. 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)

    . 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...

  7. 13.5.虚拟化工具--jhat详解、13.6.虚拟化工具--jstack详解

    13.5.虚拟化工具–jhat详解 一般不通过这个命令执行,而是通过图形化工具类查看jvm信息. 在页面下有: 查看什么是OQL语句 在页面上有OQL help,可以查看OQL的语法. 13.6.虚拟 ...

  8. IE8“开发人员工具”使用详解上(各级菜单详解)

    http://www.cnblogs.com/JustinYoung/archive/2009/03/24/kaifarenyuangongju.html 你还没有安装IE8? 如果你是前端开发人员, ...

  9. python跳一跳编程构造_python实现微信跳一跳辅助工具步骤详解

    说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1. ...

最新文章

  1. java redis 下载_redis Java源代码 redis.rar - 下载 - 搜珍网
  2. Nature Microbiology:肠道菌群如何划分肠型
  3. 福州大学2013java期末试卷_2020-11-04:java里,总体说一下集合框架。
  4. VS2008显示代码行号
  5. 使用xUnit为.net core程序进行单元测试(中)
  6. 如何编译文件(gcc + nasm)
  7. mysql实例怎么复制_Mysql实例MySQL数据库复制概论
  8. Java语言概述及常用DOS命令
  9. CentOS7添加Nginx为系统服务
  10. csv逗号分隔符转换_文件系统(02):基于SpringBoot管理Xml和CSV
  11. UE4打开屏幕键盘/软键盘/虚拟键盘 无法输入中文
  12. python 获取 汉字 %开头的 gb2312 编码
  13. 2021-05-17
  14. React组件抽象(一): mixin
  15. linux mtd 指令,mtd交叉编译mkfs命令
  16. WebAPI第四天学习总结—— 常见网页特效案例(轮播图、节流阀、返回顶部、筋斗云案例)
  17. 命令行连接MySQL报错:mysql: [Warning] Using a password on the command line interface can be insecure
  18. 密码学---数字签名和认证协议---数字签名的基本概念
  19. #define 宏的边际效应是什么
  20. ON [PRIMARY]是表示....

热门文章

  1. php利用wsh突破函数禁用执行命令(安全模式同理)
  2. 前端 - Underscore.js
  3. 在两个已经排好序的数组里找出第K小的数
  4. Vue2使用vant实现_网易云音乐案例(可跟做练手项目)
  5. android市场发展前景,安卓模拟器市场发展前景怎么样
  6. 2021中石油程序设计平台新生热身赛9-挨打记录2021/11/23
  7. 用cmd实现清理系统垃圾
  8. 5G学习笔记:承载网
  9. Linux中常见的web中间件
  10. ALIENTEK MINIS TM32 给定程序keil5大量错误问题办法