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 相关文章推荐
MybatisPlus代码生成器的使用方法详解
Jun 13 Java/Android
分析Java中Map的遍历性能问题
Jun 26 Java/Android
Spring Boot两种全局配置和两种注解的操作方法
Jun 29 Java/Android
Java实现二分搜索树的示例代码
Mar 17 Java/Android
SpringBoot2零基础到精通之数据与页面响应
Mar 22 Java/Android
Java虚拟机内存结构及编码实战分享
Apr 07 Java/Android
Java 多线程协作作业之信号同步
May 11 Java/Android
MyBatis在注解上使用动态SQL方式(@select使用if)
Jul 07 Java/Android
阿里面试Nacos配置中心交互模型是push还是pull原理解析
Jul 23 Java/Android
IDEA中sout快捷键无效问题的解决方法
Jul 23 Java/Android
spring boot实现文件上传
Aug 14 Java/Android
Spring Boot实现文件上传下载
Aug 14 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 mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
2016/10/09 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
JS数学函数Exp使用说明
2012/08/09 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
JavaScript代码实现txt文件的上传预览功能
2018/03/27 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
Python中常见的数据类型小结
2015/08/29 Python
Python中字符串的处理技巧分享
2016/09/17 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
应届大学生自荐信格式
2013/09/21 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
教师求职自荐信
2015/03/26 职场文书
深度学习详解之初试机器学习
2021/04/14 Python