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 相关文章推荐
springboot @ConfigurationProperties和@PropertySource的区别
Jun 11 Java/Android
手把手教你用SpringBoot将文件打包成zip存放或导出
Jun 11 Java/Android
Java数组与堆栈相关知识总结
Jun 29 Java/Android
Spring mvc是如何实现与数据库的前后端的连接操作的?
Jun 30 Java/Android
gateway网关接口请求的校验方式
Jul 15 Java/Android
你知道Java Spring的两种事务吗
Mar 16 Java/Android
Java练习之潜艇小游戏的实现
Mar 16 Java/Android
spring cloud eureka 服务启动失败的原因分析及解决方法
Mar 17 Java/Android
Spring 使用注解开发
May 20 Java/Android
springboot实现string转json json里面带数组
Jun 16 Java/Android
HttpClient实现表单提交上传文件
Aug 14 Java/Android
Mybatis 一级缓存和二级缓存原理区别
Sep 23 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封装的PDO数据库操作类实例
2017/06/21 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
微信小程序 实例开发总结
2017/04/26 Javascript
nodejs集成sqlite使用示例
2017/06/05 NodeJs
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
openlayers4实现点动态扩散
2020/08/17 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
python快速查找算法应用实例
2014/09/26 Python
复习Python中的字符串知识点
2015/04/14 Python
简介Django中内置的一些中间件
2015/07/24 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
python 调用钉钉机器人的方法
2019/02/20 Python
在python中画正态分布图像的实例
2019/07/08 Python
Python读取yaml文件的详细教程
2020/07/21 Python
python中实现词云图的示例
2020/12/19 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
大学生自我鉴定
2013/12/08 职场文书
法律进社区实施方案
2014/03/21 职场文书
村干部培训方案
2014/05/02 职场文书
美术社团活动总结
2014/06/27 职场文书
企业战略合作意向书
2015/05/08 职场文书
教学工作总结范文5篇
2019/08/19 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server