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集成Redis,并自定义对象序列化操作
Jun 22 Java/Android
死磕 java同步系列之synchronized解析
Jun 28 Java/Android
JavaWeb 入门:Hello Servlet
Jul 16 Java/Android
java调用Restful接口的三种方法
Aug 23 Java/Android
alibaba seata服务端具体实现
Feb 24 Java/Android
Android自定义scrollview实现回弹效果
Apr 01 Java/Android
Spring Data JPA框架自定义Repository接口
Apr 28 Java/Android
Java实现扫雷游戏详细代码讲解
May 25 Java/Android
Java中生成微信小程序太阳码的实现方案
Jun 01 Java/Android
Java中的Kotlin 内部类原理
Jun 16 Java/Android
Java实现贪吃蛇游戏的示例代码
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 使用curl提交json格式数据
2013/06/29 PHP
php实现读取和写入tab分割的文件
2015/06/01 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
python基础教程之面向对象的一些概念
2014/08/29 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
《广玉兰》教学反思
2014/04/14 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书