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

您可能感兴趣的与本文相关的镜像

Facefusion

Facefusion

AI应用

FaceFusion是全新一代AI换脸工具,无需安装,一键运行,可以完成去遮挡,高清化,卡通脸一键替换,并且Nvidia/AMD等显卡全平台支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值