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 相关文章推荐
JPA如何使用entityManager执行SQL并指定返回类型
Jun 15 Java/Android
Java用自带的Image IO给图片添加水印
Jun 15 Java/Android
Java Optional<Foo>转换成List<Bar>的实例方法
Jun 20 Java/Android
Java生成读取条形码和二维码的简单示例
Jul 09 Java/Android
Sleuth+logback 设置traceid 及自定义信息方式
Jul 26 Java/Android
Spring Boot 排除某个类加载注入IOC的操作
Aug 02 Java/Android
springboot中rabbitmq实现消息可靠性机制详解
Sep 25 Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 Java/Android
Java字符串逆序方法详情
Mar 21 Java/Android
零基础学java之方法的定义与调用详解
Apr 10 Java/Android
JAVA长虹键法之建造者Builder模式实现
Apr 10 Java/Android
Android自定义双向滑动控件
Apr 19 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
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
PHP MemCached高级缓存配置图文教程
2010/08/05 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
快速了解Python相对导入
2018/01/12 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
python 对xml解析的示例
2021/02/27 Python
python 如何在测试中使用 Mock
2021/03/01 Python
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
IMPORT的选项IGNORE有什么作用?缺省是什么设置?
2015/09/17 面试题
大专生求职信
2014/06/29 职场文书
社区低保工作总结2015
2015/07/23 职场文书