Java代码规范与质量检测插件SonarLint的使用


Posted in Java/Android onAugust 05, 2022

1.SonarLint

SonarLint是一个代码质量检测插件,可以帮助我们检测出代码中的坏味道

Java代码规范与质量检测插件SonarLint的使用

下载与安装

Java代码规范与质量检测插件SonarLint的使用

在需要检测的单个文件或者单个项目上右键 --> Analyze --> Analyze with SonarLint

或者选中文件或目录,点击菜单栏 Analyze --> Analyze with SonarLint

Java代码规范与质量检测插件SonarLint的使用

我们还可以禁用某些规则

Java代码规范与质量检测插件SonarLint的使用

如果需要同步自定义的规则时,可以绑定到SonarQube

Java代码规范与质量检测插件SonarLint的使用

Java代码规范与质量检测插件SonarLint的使用

Java代码规范与质量检测插件SonarLint的使用

查看检测的结果

Java代码规范与质量检测插件SonarLint的使用

对于代码中的警告我们不能视而不见

Java代码规范与质量检测插件SonarLint的使用

有了代码质量检测工具以后,在一定程度上可以保证代码的质量

对于每一个问题,SonarLint都给出了示例,还有相应的解决方案,教我们怎么修改,极大的方便了我们的开发

比如,对于日期类型尽量用LocalDate、LocalTime、LocalDateTime,还有重复代码、潜在的空指针异常、循环嵌套等等问题

有了代码规范与质量检测工具以后,很多东西就可以量化了,比如bug率、代码重复率等,还可以自定义各种指标,方便管理人员查看

为此,我们需要一个平台来记录每次检测分析的结果,这样就可以进行分析和统计,并且可以直观的看到这一切

于是,SonarQube 闪亮登场!

2. SonarQube

SonarQube是一个开源的代码质量管理平台

Java代码规范与质量检测插件SonarLint的使用

Java代码规范与质量检测插件SonarLint的使用

Java代码规范与质量检测插件SonarLint的使用

Java代码规范与质量检测插件SonarLint的使用

解压&本地启动

https://docs.sonarqube.org/latest/setup/get-started-2-minutes/

unzip sonarqube-7.7.zip
cd sonarqube-7.7
bin/[OS]/sonar.sh consol

Java代码规范与质量检测插件SonarLint的使用

启动成功后,访问http://localhost:9000 用管理员账号(admin/admin)登录

Java代码规范与质量检测插件SonarLint的使用

接下来,为了把检测的结果传到服务器,我们需要配置一个Scanner

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven

这里我在项目中添加sonar-maven-plugin 插件

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

命令行执行:mvn clean compile sonar:sonar

成功后,可以在控制台中看到这样的输出

Java代码规范与质量检测插件SonarLint的使用

再次刷新 http://localhost:9000/ 会看到跟刚才不一样了

Java代码规范与质量检测插件SonarLint的使用

Java代码规范与质量检测插件SonarLint的使用

Java代码规范与质量检测插件SonarLint的使用

以上只是本地演示,在正式环境中这些数据当然要保存到数据库中,具体安装就不演示了,下面是文档

https://docs.sonarqube.org/latest/setup/install-server/

3. Alibaba代码规约插件

阿里代码规范,相信大家都不陌生

Java代码规范与质量检测插件SonarLint的使用

Java代码规范与质量检测插件SonarLint的使用

Java代码规范与质量检测插件SonarLint的使用

4. 文档

https://www.sonarqube.org/

https://www.sonarsource.com/plans-and-pricing/community/

https://www.sonarlint.org/

https://docs.sonarqube.org/latest/setup/overview/

https://docs.sonarqube.org/latest/

https://github.com/SonarSource/sonar-scanning-examples/tree/master/sonarqube-scanner-maven

https://github.com/SonarSource

到此这篇关于Java代码规范与质量检测插件SonarLint的使用的文章就介绍到这了,更多相关Java SonarLint内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
深入理解以DEBUG方式线程的底层运行原理
Jun 21 Java/Android
java中重写父类方法加不加@Override详解
Jun 21 Java/Android
eclipse创建项目没有dynamic web的解决方法
Jun 24 Java/Android
深入理解java.lang.String类的不可变性
Jun 27 Java/Android
Spring整合Mybatis的全过程
Jun 28 Java/Android
OpenCV实现普通阈值
Nov 17 Java/Android
Java中try catch处理异常示例
Dec 06 Java/Android
Java生成日期时间存入Mysql数据库的实现方法
Mar 03 Java/Android
SpringBoot+Redis实现布隆过滤器的示例代码
Mar 17 Java/Android
使用HttpSessionListener监听器实战
Mar 17 Java/Android
Netty分布式客户端接入流程初始化源码分析
Mar 25 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
Spring boot admin 服务监控利器详解
Aug 05 #Java/Android
volatile保证可见性及重排序方法
Aug 05 #Java/Android
app场景下uniapp的扫码记录
Jul 23 #Java/Android
IDEA中sout快捷键无效问题的解决方法
Jul 23 #Java/Android
Spring Boot 的创建和运行示例代码详解
阿里面试Nacos配置中心交互模型是push还是pull原理解析
Jul 23 #Java/Android
java实现web实时消息推送的七种方案
You might like
PHP - Html Transfer Code
2006/10/09 PHP
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
python threading模块操作多线程介绍
2015/04/08 Python
python3判断url链接是否为404的方法
2018/08/10 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
北体毕业生求职信
2014/02/28 职场文书
婚前财产协议书范本
2014/10/19 职场文书
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫