在Gradle工程中使用checkstyle来规范你的项目

2024-01-04 20:12

本文主要是介绍在Gradle工程中使用checkstyle来规范你的项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄
🌹简历模板、学习资料、面试题库、技术互助

🌹文末获取联系方式 📝
在这里插入图片描述

系列专栏目录

[Java项目实战] 介绍Java组件安装、使用;手写框架等
[Aws服务器实战] Aws Linux服务器上操作nginx、git、JDK、Vue等
[Java微服务实战] Java 微服务实战,Spring Cloud Netflix套件、Spring Cloud Alibaba套件、Seata、gateway、shadingjdbc等实战操作
[Java基础篇] Java基础闲聊,已出HashMap、String、StringBuffer等源码分析,JVM分析,持续更新中
[Springboot篇] 从创建Springboot项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回、全局异常处理、Swagger文档
[Spring MVC篇] 从创建Spring MVC项目,到加载数据库、静态资源、输出RestFul接口、跨越问题解决到统一返回
[华为云服务器实战] 华为云Linux服务器上操作nginx、git、JDK、Vue等,以及使用宝塔运维操作添加Html网页、部署Springboot项目/Vue项目等
[Java爬虫] 通过Java+Selenium+GoogleWebDriver 模拟真人网页操作爬取花瓣网图片、bing搜索图片等
[Vue实战] 讲解Vue3的安装、环境配置,基本语法、循环语句、生命周期、路由设置、组件、axios交互、Element-ui的使用等
[Spring] 讲解Spring(Bean)概念、IOC、AOP、集成jdbcTemplate/redis/事务等


前言

在现代公司的运营中,后端研发部是必不可少的,其中Java又占据了大头。其中最火热的话题之一,就是代码风格,一个十人的团队,每个人都有自己的代码习惯,最后项目review时可以看出十种风格。
但随着时间发展,Google、Oracle、Spring、Netty 等机构和优秀框架,给我们带来了一些行业规范。当然,不存在绝对的正确和错误,关键在于规范的定义。
今天就给大家介绍下google style guide,Checkstyle就是以这种风格开发出的一个自动化插件,来辅助判断代码格式是否满足规范。

1、在Gralde中使用

在gralde中用法比较简单。示例项目: https://github.com/Ryan-Miao/springboot-security-demo/blob/master/config/checkstyle/checkstyle.xml

1.1、新建一个checkstyle.gradle

/*** The Checkstyle Plugin** Gradle plugin that performs quality checks on your project's Java source files using Checkstyle* and generates reports from these checks.** Tasks:* Run Checkstyle against {rootDir}/src/main/java: ./gradlew checkstyleMain* Run Checkstyle against {rootDir}/src/test/java: ./gradlew checkstyleTest** Reports:* Checkstyle reports can be found in {project.buildDir}/build/reports/checkstyle** Configuration:* Checkstyle is very configurable. The configuration file is located at {rootDir}/config/checkstyle/checkstyle.xml** Additional Documentation:* https://docs.gradle.org/current/userguide/checkstyle_plugin.html*/apply plugin: 'checkstyle'checkstyle {// The version of the code quality tool to be used.// The most recent version of Checkstyle can be found at https://github.com/checkstyle/checkstyle/releasestoolVersion = "8.8"// The source sets to be analyzed as part of the check and build tasks.// Use 'sourceSets = []' to remove Checkstyle from the check and build tasks.
//    sourceSets = [project.sourceSets.main, project.sourceSets.test]// Whether or not to allow the build to continue if there are warnings.ignoreFailures = false// Whether or not rule violations are to be displayed on the console.showViolations = true
}

1.2、在build.gradle中引入checkstyle

apply plugin: 'checkstyle'

1.3、加载checkstyle配置文件

关键的地方是指定checkstyle.xml规则配置文件了。默认会读取根目录下

config/checkstyle/checkstyle.xml

文件的内容来自:https://sourceforge.net/projects/checkstyle/files/checkstyle/
去maven中找到对应版本的checkstyle, 然后下载jar,解压,里面有google-checks.xml, 复制里面的内容即可。

还可以直接用最新版本,参见Github。
在这里插入图片描述

1.4、运行任务

./gradlew check

1.5、可以在以下目录找到检查结果

build/reports/checkstyle/main.html

更多细节,参考gradle 官网.

1.6、 根据流水线的Check提示,修改代码格式

在遇到Error级别代码检查异常时,会中断流水线,这时我们可以找到指定的Error信息,去修改工程里对应的代码。
在这里插入图片描述


总结

一个团队还是统一代码风格好,不仅仅是代码可观赏性,对代码的可维护性影响也非常大。后续的代码中,都会按照这套规范执行下去,如果有新人进来,可以学习一下,在有文档的情况下,学习成本也是可控的。


联系方式

微信公众号:Java微服务架构

这篇关于在Gradle工程中使用checkstyle来规范你的项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/570466

相关文章

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅