
事情是这样的,项目要求提交的代码都必须要格式化
虽然这个要求很简单,但是总有搞忘记的时候吧,这不,又搞忘记了😭
为了避免这种事情发生,我决定使用建木CI来对Java代码进行自动格式化,以后就只管提交代码,再也不用操心格式化的事情了!
下面给大家分享一下如何使用建木CI来格式化Java代码!
为什么要格式化Java代码
规范的代码是一个程序员基本的职业素养。首先,统一风格的代码可提高可读性、易于review,从而促进团队成员更好的协作。其次,提高代码质量,也更利于项目的维护。对于一个团队而言,代码规范十分重要,代码风格不统一会让整个团队显得极其不专业。如下图,格式化后的代码(右)结构明显更加清晰,便于阅读理解。

为什么要使用建木CI格式化Java代码
- 开发者不用关心格式化代码,专注于开发
- 格式化代码风格统一,不受开发者和IDE的影响
- 相比起在IDE中手动格式化代码,建木CI可以实现自动格式化代码
如何用建木CI格式化Java代码
建木Hub已经提供了格式化Java代码的节点,我们可以在建木CI中使用该节点,配合其他节点和webhook,就可以做到对Java代码进行自动格式化。
- 谷歌Java格式化节点

节点链接:
https://jianmuhub.com/_/google_java_format
节点输入参数:
type:缩进类型,可选值:AOSP-表示缩进4个空格,GOOGLE-表示缩进两个空格。默认为AOSP
files:需要进行格式化的文件/文件夹路径集合。如果路径是文件夹,节点会遍历文件夹中的每一个文件进行代码格式化
注意: 非Java文件不会被格式化,节点日志如下:

- 建木CI实现自动格式化代码的流程图:

- 流程DSL示例:
name: 自动格式化Java代码
global:
param:
# 需要进行格式化的代码仓库地址
git_remote_url: https://xxx/xxx.git
trigger:
type: webhook
param:
# gitee中的webhook钩子事件
- name: gitee_event
type: STRING
exp: $.header.x-gitee-event
# 仓库项目名
- name: project_name
type: STRING
exp: $.body.json.project.name
# webhook返回的分支信息
- name: gitee_ref
type: STRING
exp: $.body.json.ref
# 提交的commit信息
- name: commit_message
type: STRING
exp: $.body.json.commits[0].message
# 条件满足时触发流程
only: (${trigger.gitee_event} == "Push Hook" && ${trigger.commit_message} != "refactor:auto format code")
pipeline:
git_clone:
type: git_clone:1.2.1
alias: 克隆项目
param:
remote_url: ${global.git_remote_url}
# 使用trigger提取的分支
ref: ${trigger.gitee_ref}
# 使用添加好的密钥
username: ((gitee.username))
password: ((gitee.password))
google_java_format:
type: google_java_format:1.0.0-1.15.0
alias: 格式化代码
param:
# 格式化仓库所有文件
files: '["${git_clone.git_path}"]'
git_push:
type: git_push:1.0.4
alias: push格式化代码
param:
remote_url: ${global.git_remote_url}
remote_branch: ${git_clone.git_branch}
username: ((gitee.username))
password: ((gitee.password))
source_path: ${git_clone.git_path}
target_dir: ${trigger.project_name}
commit_message: 'refactor:auto format code'
- 添加仓库webhook
复制webhook地址

这里以gitee仓库为例,进入仓库管理,添加webhook,事件选择push

- 触发流程
添加好webhook后,每次你push代码到仓库后,webhook就会触发流程,自动对Java代码进行格式化😁
流程运行如下:

格式化代码提交信息如下:

看到这里,有没有觉得很方便呢,以后每次只要提交代码就行了,格式化的事就交给建木CI去做吧!
有兴趣的小伙伴快去尝试一下吧!

本文为建木博主「早春的树」的原创投稿文章,转载请联系授权。
项⽬官⽹:https://jianmu.dev
624

被折叠的 条评论
为什么被折叠?



