SonarQube + Maven分析代码质量

SonarQube + Maven分析代码质量

1.1. sonarqube简介

SonarQube是个开源的代码质量管理平台,可以通过多种工具和维度对代码质量进行分析,部分功能还支持可视化,对于代码缺陷一目了然。SonarQube比较开放,支持通过插件扩展功能。支持众多计算机语言,比如 java, C#, go,C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等。由于我们的项目java语言,使用maven构建,接下来仅介绍sonarqube与maven构建集成进行代码质量扫描。

1.2. 安装配置sonarqube

Docker镜像安装(sonarqube+mysql),步骤省略

1.3. 与Maven集成

${MAVEN_HOME}/conf/settings.xml 配置如下:

<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://192.168.3.74:9000
                </sonar.host.url>

             </properties>
    </profile>
</profiles>

执行命令:mvn sonar:sonar -Dsonar.login=5734cc6f6d33232a5d7c45453aa01d70b0427015
使用sonarqube的token执行

首先,执行命令
mvn sonar:sonar -Dsonar.login=5734cc6f6d33232a5d7c45453aa01d70b0427015 ,如果日志输出”BUILD SUCCESS“说明已经构建成功。在浏览器查看分析结果。

1.4. 查看分析结果

在浏览器访问:http://192.168.3.74:9000,账号登录进入。

1.4.1. home页

下面是home页,右边PROJECTS页面列出了所有的工程。点击项目链接,可以查看项目详细情况。
在这里插入图片描述

1.4.2. 项目质量信息
包含了很多信息,比如质量阈、bugs、漏洞、坏味道、单元测试覆盖率、重复度、注释量等。

质量阈:列出不达标的项,如漏洞、bugs、单元测试覆盖率、新代码重复度
新增bug或漏洞:相对于上次分析结果后新增的问题
债务:从提交日起到现在未解决的时间
新债务:从第一次分析开始到现在未解决的时间
代码覆盖率:在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,比如,代码覆盖率必须达到80%或 90%
注释量:具体项目-指标-大小-注释
http://192.168.3.74:9000/component_measures?id=com.navinfo%3Acsu-parent&metric=comment_lines_density

1.4.3. 具体问题分析

点击“问题”,打开问题视图页。通过点击问题数,如下红框所示,列出问题明细,包括问题严重级别,对应的问题数量,问题的描述

在这里插入图片描述

1.4.4. 问题解决结果

解决结果:确认、解决、误判、不修复。
SonarQube允许管理员对问题进行重新确认。

1.4.5. 自定义规则

质量配置是在分析时使用的规则集合,每个语言都有默认配置。没有指定其他配置的项目会使用默认配置。

sonarqube很多自带的规则对项目有些影响,部分规则不需要启用。sonarqube不允许修改默认的最优配置,我们先复制出来再修改。

不需启用的规则,点击“挂起”

修改项目质量配置规则:项目-配置-质量配置,选择自定义的规则

1.5. IDEA集成SonarLint

SonarLint 是一个插件,可以集成到开发工具里,当打开java文件时可自动分析静态文件,也可以手动对整个项目做分析;可连接到SonarQube同步分析规则、质量规则与自定义设置;
接下来就说明下IDEA如何集成
1、配置maven
${MAVEN_HOME}/conf/settings.xml 配置如下:

<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://192.168.3.74:9000
                </sonar.host.url>

             </properties>
    </profile>
</profiles>

2、安装插件sonarLint

3、配置SonarQube servers

如果勾选 Automatically tigger analysis ,将会自动对打开的文件进行分析
4、绑定上一步骤创建的,以及选择项目对应的SonarQube的项目

5、执行命令 ,即可将项目进行分析,以及将分析的结果同步到SonarQube平台上
mvn sonar:sonar -Dsonar.login=5734cc6f6d33232a5d7c45453aa01d70b0427015

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值