SonarQube 的安装、配置及 Maven 项目的使用

目录

  • SonarQube 介绍
  • 环境、软件准备
  • SonarQube 安装
  • Plugins 插件安装
  • 使用 SonarQube 分析 Maven 项目

1、SonarQube 介绍

SonarQube 是一个用于管理源代码质量开放平台,它可以从多个维度检测代码质量,可以快速的定位代码中潜在的或者明显的 Bug、错误。它支持包括 Java、Python、Php、C/C++、C#、HTML、JavaScript、PL/SQL、Objective C 等二十多种编程语言的代码质量管理与检测。可作为我们日常开发中检测代码质量的重要工具。

2、环境、软件准备

本次演示环境,我是在本地机器 Mac 上操作,以下是安装的软件及版本:

  1. SonarQube:version 6.5
  2. Jdk:version 1.8.0_91
  3. Maven:version 3.3.9
  4. Mysql: version 5.7.15

注意:下边我们要演示 Maven 项目如何使用 SonarQube 分析,所以需要先安装 Maven、Jdk,SonarQube 安装我们使用 Mysql 作为数据存储,所以需要先安装 Mysql,这里 Maven、Jdk、Mysql 的安装忽略。

3、SonarQube 安装

SonarQube 安装很简单,只需去官网下载最新版 zip 安装包到本地,解压执行即可。我解压到本地后的目录为/Applications/soft/sonarqube-6.5,解压目录结构如下:

这里写图片描述

这里简单说下每个目录作用:

  • bin 用来启动 SonarQube 服务,这里已经提供好了不同系统启动 | 停止脚本了,目前提供了 linux-x86-32、linux-x86-64、macosx-universal-64、windows-x86-32、windows-x86-64
  • conf 用来存放配置文件,若需要修改配置,修改 sonar.properties 文件即可。
  • data 用来存放数据,SonarQube默认使用 h2 数据库存储,同时支持其他如Mysql、Orace、Mssql、Postgresql数据库存储。
  • extensions 用来存放插件 jar 包,以后我们需要安装插件就放在这里。
  • lib 用来存放各种所依赖的 jar 包,包括上边各数据库驱动包 (默认已提供一个版本,如果版本不匹配,则在这里手动更新下)。
  • logs 用来存放各日志信息
  • web 用来提供 SonarQube web 网页服务。

本机 Mac 环境启动 | 停止 | 重启 | 查看状态 SonarQube 服务命令:<install_dir>/bin/macosx-universal-64/sonar.sh start | stop | restart | status。成功启动后,访问本地 http://localhost:9000,SonarQube 初始管理员账号为 admin,默认密码为 admin,登录后可修改密码。

这里写图片描述

SonarQube 默认服务端口为 9000,默认数据库为 h2,这些都是可以修改配置的,我们只需要修改<install_dir>/conf/sonar.properties文件即可。以修改配置 Mysql 数据库为例:

1、修改 sonar.properties
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

2、本地 Mysql 创建数据库
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

3、本地 Mysql 创建用户并分配权限
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%' IDENTIFIED BY 'sonar' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar' WITH GRANT OPTION;
FLUSH PRIVILEGES;

修改完成后,重启服务即可,我们会发现SonarQube已经帮我们在本地 Mysql 数据库 sonar 中创建好了所需各表。

这里写图片描述

4、Plugins 插件安装

SonarQube 插件安装非常简单,同时 官网插件库 提供了很多实用的插件供大家下载使用。SonarQube已经默认给我们安装了一些很常用的插件,我们可以通过admin登录,点击 配置 -> 系统 -> 更新中心 -> Installed 查看。
这里我们演示安装两个很实用的插件,一个是 Chinese Pack(SonarQube的汉化包),一个是 Checkstyle(检测代码风格)。

4.1 Chinese Pack 插件安装

SonarQube 网页的汉化包,安装完该插件后,Web 页面大部分都翻译成中文了,是不是一下子就简介明了啦!首先下载插件 sonar-l10n-zh,源码托管在 github 上,我们需要先 clone 到本地,执行 maven 编译得到 jar 包,然后复制到sonarQube插件目录,最后重启服务即可安装完成。 (注意:README上的兼容列表,我本地 SonarQube 版本6.5,所以下载插件对应版本是1.17。)

git clone https://github.com/SonarQubeCommunity/sonar-l10n-zh.git
cd sonar-l10n-zh
mvn install
cp target/sonar-l10n-zh-plugin-1.17-SNAPSHOT.jar <install_dir>/extensions/plugins
<install_dir>/bin/macosx-universal-64/sonar.sh restart 

这里写图片描述

4.2 Checkstyle 插件安装

上边 Chinese Pack 插件安装时通过直接将 jar 包放到插件目录完成安装,我们也可以在 SonarQube 网页上直接点击安装。admin 登录,点击 配置 -> 系统 -> 更新中心 -> Available -> Search,输入 CheckStyle,在搜素结果中找到 CheckStyle 插件点击 Install,等待下载完成后,按照页面提示点击 Restart 自动重启服务即可完成安装。

这里写图片描述

admin登录,点击 配置 -> 系统 -> 更新中心 -> Installed 列表中可以看到我们刚刚安装的两个插件了。

这里写图片描述

SonarQube 支持分析的语言有很多,像Java、Python、Php、C/C++、C#、HTML、JavaScript、PL/SQL、Objective C等20+语言,当我们需要支持分析什么语言时,只需要去插件中心安装对应语言的插件即可,非常方便,可扩展性强。

5、使用 SonarQube 分析 Maven 项目

下面我们以一个 Java Maven 项目 mavenDemo 为例,看下如何配置,以及 SonarQube 分析结果查看。注意:这里有个兼容性选择问题,如果 SonarQube >= 4.5,那么 maven-sonar-plugin >= 2.7,如果 SonarQube < 4.5,那么 maven-sonar-plugin = 2.6;如果 Maven >= 3.0,那么maven-sonar-plugin >= 3.1,如果 Maven < 3.0,那么 maven-sonar-plugin = 3.0.2。

首先,我们需要配置 Maven 的 setting.xml文件,增加 sonarQube 配置。

<settings>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- 配置 Sonar Host地址,默认:http://localhost:9000 -->
                <sonar.host.url>
                  http://myserver:9000
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

然后就可以在我们 Maven 工程目录执行 mvn clean verify sonar:sonarmvn clean install sonar:sonar

如果我们想指定使用某个版本的 sonar-maven-plugin 插件,比如 3.3.0.603 版本,可以有两种方式:

一、修改 pom.xml 文件

<build>
  <plugins>
    <plugin>
      <groupId>org.sonarsource.scanner.maven</groupId>
      <artifactId>sonar-maven-plugin</artifactId>
      <version>3.3.0.603</version>
    </plugin>
  </plugins>
</build>

二、使用 mvn 命令指定

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

执行完毕之后,可以去 web页面查看分析结果。

这里写图片描述

这里写图片描述

这里我们只演示了一个简单的 Maven 项目使用 SonarQube 分析代码质量,SonarQube 功能还有很多,像代码规则、质量配置、质量阈值配置、项目权限配置等等,有时间在慢慢研究下吧。

参考资料

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
jacoco-sonarqube-maven覆盖率统计是一种用于统计代码覆盖率的工具链,主要用于帮助开发团队了解代码的测试覆盖情况,并评估测试质量。这个工具链由三个核心组件组成:Jacoco、SonarQubeMaven。 Jacoco是一个开源的覆盖率工具,可以用于Java代码的覆盖率统计。它通过在代码中插入特定的监控字节码,可以记录代码被执行的情况,并生成相应的覆盖率报告。Jacoco可以用于生成行覆盖率、分支覆盖率、方法覆盖率等多种类型的覆盖率报告。 SonarQube是一个开源的代码质量管理平台,可以用于对代码进行静态代码分析、代码度量和测试覆盖率等多项指标的监控。通过SonarQube,开发团队可以获得代码质量指标、可视化的报告和图表,以帮助他们及时发现代码中的问题并进行改进。 Maven是一个Java项目的构建工具,可以用于管理项目的依赖关系、编译、测试和部署等过程。通过在Maven配置文件中集成Jacoco和SonarQube插件,可以使得代码的覆盖率统计成为整个项目构建和测试流程的一部分。这样,每次进行Maven构建时,都会自动运行Jacoco插件并生成覆盖率报告,并将报告上传到SonarQube服务器进行展示和分析。 总结来说,jacoco-sonarqube-maven覆盖率统计参考项目是一个基于Jococo、SonarQubeMaven的工具链,能够帮助开发团队统计代码的覆盖率并进行质量评估。它能够让开发团队及时了解代码的覆盖情况,发现潜在的问题,并通过SonarQube的静态代码分析功能进行进一步的优化和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值