写点什么

Java 篇|忘记格式化代码,把女朋友鸽了

作者:Jianmu
  • 2022 年 3 月 29 日
  • 本文字数:1651 字

    阅读完需:约 5 分钟

Java篇|忘记格式化代码,把女朋友鸽了


事情是这样的,项目要求提交的代码都必须要格式化

虽然这个要求很简单,但是总有搞忘记的时候吧,这不,又搞忘记了😭

为了避免这种事情发生,我决定使用建木 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


项⽬托管:https://gitee.com/jianmu-dev


项⽬文档:https://docs.jianmu.dev


在线体验:https://ci.jianmu.dev

用户头像

Jianmu

关注

国产开源CI/CD产品 2020.08.10 加入

建木持续集成平台基于建木,致力于为国内开发者与DevOps人员提供极致用户体验,提升开发、上线、运维的效率,让软件用户专注于提供业务价值。

评论

发布
暂无评论
Java篇|忘记格式化代码,把女朋友鸽了_Java_Jianmu_InfoQ写作平台