提升代码质量,使用插件对 java 代码进行扫描检查分析
创始人
2025-06-01 12:13:47
0

目录

  • 前言
  • 一、使用maven-checkstyle-plugin插件
    • 1. maven-checkstyle-plugin 介绍
    • 2.引入依赖
    • 3.使用
  • 二、使用 idea 插件
    • 1.安装
    • 2.使用

前言

很多时候我们的代码写的不规范,比如没缩进、参数间没空格、导入的包没用到没删除、方法很长没有进行拆分、 直接对方法参数进行了赋值分配等等不规范的操作或写法。

为了规范代码并提高代码的质量,以及扫描代码检测潜在的不合理代码,我们可以使用一些插件来进行代码扫描分析。

一、使用maven-checkstyle-plugin插件

1. maven-checkstyle-plugin 介绍

maven-checkstyle-plugin 是 maven 提供的一个插件,用于扫描代码检测不合理需要改进的差代码,简单来说就是代码规范检查。

举个例子:

GitHub 就用它在提交和拉取请求时审核代码库的一致性(例如缩进规则等)。GitHub 的 Actions 等 CI/CD 系统中就使用了这个东西,当你在 GitHub 上 fork 了一个开源项目,然后修改一些代码后给原项目作者提了一个 PR 请求,原作者同意后GitHub CI就会用这个东西构建检查代码缩进和代码规范是否有不合理的地方。

2.引入依赖

在 pom.xml 的 pluginManagement 标签中引入如下插件依赖:

		org.apache.maven.pluginsmaven-checkstyle-plugin3.2.1

maven-checkstyle-plugin 自带两套扫描代码的规则,一套是 Sun 定义的 sun_checks.xml ,一套是由谷歌定义的 google_checks.xml。像上面那样不指定扫描规则,则默认采用 sun_checks.xml ,如果你想指定使用 google_checks.xml 规则扫描代码可以像下面这样引入插件依赖:

		org.apache.maven.pluginsmaven-checkstyle-plugin3.2.1google_checks.xml

如果你想采用自定义的扫描规则,请在你的 pom.xml 同级目录下新建 checkstyle.xml 文件并在其中配置你的规则。然后修改 pom.xml 中 maven-checkstyle-plugin 插件的 configLocation 配置 checkstyle.xml ,就像上面的 google_checks.xml 一样。

网上有很多自定义的 checkstyle.xml 规则,例如:

  • 谷歌的代码检测规则
  • 较完整checkstyle.xml及说明

3.使用

在项目目录下打开 cmd 命令行或者在 idea 中的 Terminal 中输入mvn checkstyle:check 命令开始扫描代码。
扫描后提示的ERROR就是需要改进的地方:

请添加图片描述

其他关于 maven-checkstyle-plugin 插件的配置和说明具体可参见官网: Apache Maven Checkstyle Plugin

二、使用 idea 插件

除了使用上面的 maven 插件,如果你使用的是 idea 编译器,你可以安装 idea 的插件来扫描代码,效果和 maven 插件一样。

1.安装

File ==》Settings ==》Plugins ==》Marketplace ==》搜索 CheckStyle-IDEA 进行安装 。

请添加图片描述

( 插件有 100MB 左右可能需要下载一会,如果下载很慢的话可以浏览器访问 idea插件中心下载CheckStyle-IDEA 找到你对应的idea版本下载相应的 CheckStyle-IDEA 插件压缩包,然后 idea 里 File ==》Settings ==》Plugins ==》Marketplace ==》点击右上角设置图标选择 Install Plugin from Disk , 选择下载的压缩包进行安装,最后重启 idea )

2.使用

CheckStyle-IDEA 自带 Sun 和 Google 两套扫描代码规则,你可以选择其中一个规则进行扫描。(如果要自定义扫描规则或其他配置,File ==》Settings ==》Tools ==》Checkstyle 进行设置)

左侧的三个按钮分别是检查当前文件的代码、检查当前模块的代码、检查整个项目的代码

在这里插入图片描述

扫描结果如下,点击具体的报错可跳转定位到相关代码处:

在这里插入图片描述

相关内容

热门资讯

【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...
【已解决】ERROR: Cou... 正确指令: pip install pyyaml
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
Lock 接口解读 前置知识点Synchronized synchronized 是 Java 中的关键字,...
Win7 专业版安装中文包、汉... 参考资料:http://www.metsky.com/archives/350.htm...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
大模型未来趋势 大模型是人工智能领域的重要发展趋势之一,未来有着广阔的应用前景和发展空间。以下是大模型未来的趋势和展...
python实战应用讲解-【n... 目录 如何在Python中计算残余的平方和 方法1:使用其Base公式 方法2:使用statsmod...
学习u-boot 需要了解的m... 一、常用函数 1. origin 函数 origin 函数的返回值就是变量来源。使用格式如下...
常用python爬虫库介绍与简... 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库&...
药品批准文号查询|药融云-中国... 药品批文是国家食品药品监督管理局(NMPA)对药品的审评和批准的证明文件...
【2023-03-22】SRS... 【2023-03-22】SRS推流搭配FFmpeg实现目标检测 说明: 外侧测试使用SRS播放器测...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
初级算法-哈希表 主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-哈希表...
进程间通信【Linux】 1. 进程间通信 1.1 什么是进程间通信 在 Linux 系统中,进程间通信...
【Docker】P3 Dock... Docker数据卷、宿主机与挂载数据卷的概念及作用挂载宿主机配置数据卷挂载操作示例一个容器挂载多个目...