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 相关文章推荐
为什么在foreach循环中JAVA集合不能添加或删除元素
Jun 11 Java/Android
SpringBoot2 参数管理实践之入参出参与校验的方式
Jun 16 Java/Android
详解java如何集成swagger组件
Jun 21 Java/Android
Java常用工具类汇总 附示例代码
Jun 26 Java/Android
MyBatis自定义SQL拦截器示例详解
Oct 24 Java/Android
聊聊SpringBoot自动装配的魔力
Nov 17 Java/Android
深入浅出讲解Java8函数式编程
Jan 18 Java/Android
Android Flutter实现3D动画效果示例详解
Apr 07 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
Apr 19 Java/Android
Android 中的类文件和类加载器详情
Jun 05 Java/Android
Android开发手册Chip监听及ChipGroup监听
Jun 10 Java/Android
ConditionalOnProperty配置swagger不生效问题及解决
Jun 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为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
php Session存储到Redis的方法
2013/11/04 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
试用php中oci8扩展
2015/06/18 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
详解vue2.6插槽更新v-slot用法总结
2019/03/09 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
Python 异常处理实例详解
2014/03/12 Python
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
python实战之实现excel读取、统计、写入的示例讲解
2018/05/02 Python
利用python计算时间差(返回天数)
2019/09/07 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
Lampegiganten丹麦:欧洲领先的照明网上商店
2018/04/25 全球购物
党支部承诺书范文
2014/03/28 职场文书
银行内勤岗位职责
2014/04/09 职场文书
《画风》教学反思
2014/04/16 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
农村文化建设标语
2014/10/07 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
小学作文之描写天气
2019/08/15 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis