代码质量难以管控,Sonarqube了解一下?

661 阅读3分钟

代码质量难以管控?代码质量控制神器Sonarqube了解一下?

大家好,我是王老师,最近被隔离,项目赶工事情比较多,鸽了比较久。最近也准备在数据治理和数据中台技术上面出一个专栏,将我们整个数据中台搭建的心得以及遇到的问题分享给大家,同时避免大家踩坑。今天给大家介绍一款代码质量控制神器sonarqube。其实像代码扫描工具有很多如P3C,Checkmarx,但是这款给我的感觉就是,简单,易用,并且可视化效果很好。很适合做全局的代码质量控制。废话不多少,我们开始进入正题

一、Sonarqube简介

SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。 通过插件形式,可以支持众多计算机语言,比如 java, C#, go,C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等。sonar可以通过PMD,P3C,CheckStyle,Findbugs等等代码规则检测工具来检测你的代码,帮助你发现代码的漏洞,Bug,异味等信息。

Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

Sonarqube主要核心功能如下:

1、代码漏斗异味bug检测

2、代码质量大盘

3、自定义质量阀

4、团队项目质量隔离

二、Sonarqube配置流程

sonarqube安装非常简单,就不在多说了。

如果我们搭建好了Sonarqube的服务器,那么我们只需简单几步可以集成扫描插件

1、setting文件修改

在本地Maven仓库里修改Setting文件,将下列代码加入文件中。其中<sonar.host.url>为Sonarqube服务安装地址。

<profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <sonar.host.url>
                  <http://ip:9000>
                </sonar.host.url>
            </properties>
</profile>

image.png 在项目文件pom.xml文件中新增如下插件,这样就可通过maven插件的方式进行执行

<plugin>
    <groupId>org.sonarsource.scanner.maven</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>3.7.0.1746</version>
</plugin>

image.png

3、插件执行

pom文件中maven插件新增好之后,插件一栏就会多个Sonar,选择sonar:sonar进行执行

image.png

4、代码扫描过程

image.png

5、查看扫描报告

之后通过sonarqube web端看到所有的代码扫描信息。点击之后可以看到具体代码xiangqing

image.png

6、点击项目可以看到具体的项目信息

image.png

7、点击bug等可以查看具体问题代码行

image.png

这样我们就可以看到我们代码中存在的一些漏洞和异味了。可以快乐的去消除bug了

三、Sonarqube与IDEA集成

搭建了Sonar 服务来管理分析代码,主要用于项目整体分析。我们还可以安装IDEA的插件,可以在代码提交之前就发现问题。配置流程如下:

1、在IDEA菜单栏选择File->Settings,左边栏选择Plugins,在线安装选择Browse repositories,搜索Sonar,选择SonarLint进行安装,之后重启IDEA即可

image.png

2、打开一个文件,开始编码,就会看到SonarLint给我们的提示:

image.png

3、SonarLint安装完后,默认情况下是自动检测项目代码的。若觉得影响效率,可通过菜单Settings->Other Settings->SonarLint General Settings进行设置

image.png

4、配置关联sonar服务

  • 全局设置

Settings->Other Settings->SonarLint General Settings

添加sonar服务http://IP:9000/

  • 项目设置

Settings->Other Settings->SonarLint Project Settings

选择刚才配置的sonar服务,关联到本项目。

关联sonar服务之后就会共享服务器上的代码规则。在idea下面一栏找到sonarLint,可以分析单个文件,也可单独分析未提交的代码。

这样我们在写代码过程中就可以注意到有哪些代码问题,随时进行修改。养成良好的代码变成习惯。