如何在GitHub Packages中覆盖已存在的软件包版本
解决GitHub Packages覆盖已存在SNAPSHOT版本的问题
1. 开启GitHub Packages的版本覆盖权限
进入GitHub仓库的「Packages」页面,找到你发布的包,进入包的「Settings」页面:
- 在「Package visibility and access」区域,找到「Allow updates to existing packages」选项并勾选保存。这是允许覆盖同版本包的核心设置。
2. 配置Gradle发布脚本支持覆盖
如果你使用maven-publish插件,需要在构建脚本中明确允许SNAPSHOT版本的更新:
示例build.gradle配置
plugins { id 'java' id 'maven-publish' } group = 'your.group.id' version = '1.0.0-SNAPSHOT' // 替换为你的SNAPSHOT版本号 publishing { publications { mavenJava(MavenPublication) { from components.java } } repositories { maven { name = "GitHubPackages" url = uri("https://maven.pkg.github.com/OWNER/REPO") // 替换为你的仓库OWNER和名称 credentials { username = System.getenv("GITHUB_ACTOR") password = System.getenv("GITHUB_TOKEN") } // 允许SNAPSHOT版本更新 content { snapshots { allowAll() } } } } }
3. 调整GitHub Actions工作流(可选)
如果上述配置后仍有问题,可以在publish步骤中添加Gradle参数强制覆盖:
修改工作流中的publish步骤:
- name: Publish package uses: gradle/gradle-build-action@v2 with: arguments: publish -Pmaven.deploy.override=true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_ACTOR: ${{ github.actor }}
内容的提问来源于stack exchange,提问作者Savrov
相关产品推荐
相关产品推荐

