SonarQube 插件之 Issues Report & SonarLint 的配置及使用

目录

  • Issues Report Plugins 介绍
  • Issues Report Plugins 使用
  • SonarLint For IntelliJ IDEA 安装及配置

1、Issues Report Plugins 介绍

使用 Issues Report Plugins 插件可以为我们生成一份 HTML 格式的问题报告,对于开发人员来说是很有好处的,我们可以在改动代码后 Push 代码到仓库前,检测一下代码质量,生成问题报告,提醒自己避免提交有明显问题的代码到仓库中,当然也可以去 SonarQube Web 上查看详细情况。

2、Issues Report Plugins 使用

Issues Report Plugins 插件的使用很简单,只需要 Maven 命令行指定参数执行即可。注意:SonarQube > 5.1 版本,该插件已经过时了,不过我们还是直接可以使用,免安装。5.1 版本以后由 SonarLint 替代该插件。

mvn sonar:sonar 
    -Dsonar.analysis.mode=preview  # 设置 mode,默认为preview

    -Dsonar.issuesReport.lightModeOnly=true # 设置是否只生成新增问题的报告

    -Dsonar.issuesReport.html.enable=true # 设置生成 HTML 格式的报告
    -Dsonar.issuesReport.html.name=xxxx # 设置生成 HTML 报告的文件名字
    -Dsonar.issuesReport.html.location=/xx/xx # 设置生成 HTML 报告的文件存储路径

    -Dsonar.issuesReport.console.enable=true # 设置报告输出到控制台

当设置-Dsonar.issuesReport.html.enable=true时,该插件默认会生成两份 HTML 报告,一份是包含所有问题的报告 ,一份为只包含新增问题的报告 ,除非设置了-Dsonar.issuesReport.lightModeOnly=true,则只生成包含新问题的报告。默认生成报告的路径为<maven_project>/target/sonar/issues-report/,使用-Dsonar.issuesReport.html.location 可修改生成路径。报告默认文件名为 issues-report.html (全部问题报告),issues-report-light.html(新增问题报告),使用-Dsonar.issuesReport.html.name=xxxx 可修改生成的文件名称。当设置-Dsonar.issuesReport.console.enable=true时,则不会生成HTML文件报告,会将检测结果打印到控制台输出。

示例:

$ mvn sonar:sonar -Dsonar.analysis.mode=preview -Dsonar.issuesReport.html.enable=true

...
[INFO] HTML Issues Report generated: /Users/wanyang3/Documents/hwy/IdeaProjects/mavenDemo/target/sonar/issues-report/issues-report.html
[INFO] Light HTML Issues Report generated: /Users/wanyang3/Documents/hwy/IdeaProjects/mavenDemo/target/sonar/issues-report/issues-report-light.html
...
$ mvn sonar:sonar -Dsonar.analysis.mode=preview -Dsonar.issuesReport.console.enable=true

...
[INFO] 
-------------  Issues Report  -------------

        +2 issues

        +1 critical
        +1 major

-------------------------------------------
...

3、SonarLint For IntelliJ IDEA 安装及配置

SonarLint 是为了替代上边 Issues Report Plugins 插件,并且更方便的集成到我们日常的开发工具里面去。SonarLint For IntelliJ IDEA 就是专门为 IDEA 工具提供的插件,它可以为开发人员时刻返回新的 Bug 以及其他质量问题,并且很直观显示在工具上边。现在支持的语言有 Java、 JavaScript 、PHP。

SonarLint 插件安装也很简单,点击 IntelliJ -> Plugins -> Browse Repositories -> 输入 SonarLint search -> install 等待下载安装完毕,点击 restart 重启 IDEA即可。

设置 SonarLint 全局配置。点击 IntelliJ -> Other Settings -> SonarLint General Settings -> Add 弹出框添加一个 New SonarQube Server,这里我们添加之前本地搭建的 SonarQube 服务 URL:http://127.0.0.1:9000,服务别名为:my_sonarqube,下一步配置认证,可以设置 Token 或者 Login / Password,配置完成后点击 Update Binding,更新绑定信息,最后点击 Apply 即可。注意:认证 Token 可以去 SonarQube Web 上生成一个认证 Token 或者用用户名密码登录均可

设置 SonarLint 项目配置,点击 IntelliJ -> Other Settings -> SonarLint Project Settings -> Bind to Server,选择刚我们配置的全局配置 my_sonarqube,在 SonarQube project 项目列表里面选择对应的项目,最后点击 Apply 即可。注意:这里的项目列表是从配置的 SonarQube 服务上拉取下来的项目,如果没有加载,可以点击 Update project list 重新加载。

以上配置完成后,就可以愉快的使用 SonarLint 插件了,这里我们以 mavenDemo 项目为例,故意写一些垃圾代码,看下检测结果吧。

参考资料

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏陈树义

如何在IntelJ下用Maven创建一个Web项目

相信一开始做Web项目的同学都是直接把项目包放在WEB-INF/lib目录下,然后就开始做项目了。但是之后接触了一些使用了Maven进行包管理的项目,我们就不得...

2546
来自专栏沈唁志

三种方法解决升级更新 WordPress 速度慢的问题

1963
来自专栏程序员叨叨叨

是时候来一波Android Studio与Genymotion的配置了

之前在Lofter写了一篇《安卓开发工具与Genymotion模拟器安装配置详解》,如今已转至简书平台写博客,遂将此文搬至此处,以作备忘。 注:此文基于Win...

784
来自专栏Hadoop实操

Hive2.2.0如何与CDH集群中的Spark1.6集成

1192
来自专栏xingoo, 一个梦想做发明家的程序员

CDH中如何升级Spark

通过上面的过程分析,可以知道,Spark版本存在两个地方:一个是A节点提交Spark-submit的程序必须是2.3.0版本的;另一个是Yarn使用的lib必须...

980
来自专栏郭少华

Vue实战开发

4.新建Fwsb组件,这个相当于程序员的入口文件。在src/components/目录下新建Fwsb.vue文件。文件内容

732
来自专栏Hadoop实操

如何在CDH集群安装Anaconda&搭建Python私有源

Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本p...

7897
来自专栏搜云库

搭建 Jenkins-2.83 服务,部署 spring boot 项目

Jenkins 是什么? Jenkins 是一个可扩展的持续集成引擎。 主要用于: 持续、自动地构建/测试软件项目。 监控一些定时执行的任务。 Jenkins...

37110
来自专栏蓝天

如何让所有的后台程序(daemons)都可以产生core dumps文件?

Core dumps 默认是关闭的。强烈推荐您不要在生产机器上打开此功能。最好是在 开发的机器或者测试的机器上打开此功能。

582
来自专栏python爬虫日记

windows平台python 2.7环境编译安装zbar

最近一个项目需要识别二维码,找来找去找到了zbar和zxing,中间越过无数坑,总算基本上弄明白,分享出来给大家。

895

扫码关注云+社区