You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub仓库发布新版本时自动更新README文件?

自动化更新README版本号的方案

方案1:GitHub Actions 触发自动更新

这是适配GitHub仓库的高效自动化方案,当你发布新版本(创建Tag)时,自动执行版本号替换并提交修改:

  1. 在仓库根目录创建工作流文件 .github/workflows/update-readme.yml,内容如下:
name: Update README on Release
on:
  release:
    types: [published]

permissions:
  contents: write

jobs:
  update-readme:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # 从Release的Tag中提取版本号(假设Tag格式为v2.0.0,无v前缀则去掉末尾的v)
      - name: Get release version
        run: echo "NEW_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
      # 替换README中的版本号
      - name: Replace version in README
        run: sed -i "s/io.github.me:javalib:[0-9]*\.[0-9]*\.[0-9]*/io.github.me:javalib:$NEW_VERSION/g" README.md
      # 提交并推送修改
      - name: Commit changes
        run: |
          git config --global user.name "github-actions[bot]"
          git config --global user.email "github-actions[bot]@users.noreply.github.com"
          git add README.md
          git commit -m "Update README to version $NEW_VERSION"
          git push
  • 说明:正则表达式会匹配所有x.x.x格式的版本号,确保替换README中所有出现的目标版本标签。

方案2:模板生成README

将README设为模板文件,用占位符代替版本号,发布时通过脚本生成最终README:

  1. 创建 README.template.md 模板文件:
My Java library project

You need to add
`implementation io.github.me:javalib:{{VERSION}}`
  1. 编写Shell脚本(update-readme.sh)读取项目版本并替换占位符:
#!/bin/bash
# 从Gradle配置读取版本(Maven项目可改为:grep "<version>" pom.xml | head -1 | awk -F'[<>]' '{print $3}')
VERSION=$(grep "version" build.gradle | awk '{print $2}' | tr -d '"')
# 生成最终README.md
sed "s/{{VERSION}}/$VERSION/g" README.template.md > README.md
  1. 发布前执行脚本,提交生成的README.md即可;也可将脚本加入CI流程,实现发布时自动执行。

方案3:通过构建工具(Gradle/Maven)自动更新

利用Java项目的构建工具,在发布阶段自动修改README版本号:

Gradle示例

在build.gradle中添加自定义任务:

task updateReadme {
    doLast {
        def currentVersion = project.version.toString()
        def readme = file("README.md")
        def updatedContent = readme.text.replaceAll(
            /io.github.me:javalib:\d+\.\d+\.\d+/,
            "io.github.me:javalib:$currentVersion"
        )
        readme.text = updatedContent
    }
}

// 让发布任务依赖版本更新任务
publish.dependsOn(updateReadme)

执行./gradlew publish时,会先更新README版本号再执行发布流程,之后提交README的修改即可。

内容的提问来源于stack exchange,提问作者Rasbypy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 13:45:32