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

将私有Maven项目发布到GitHub Packages报422错误如何解决?

解决方案

1. 检查PAT权限

你的settings.xml中配置的密码是GitHub个人访问令牌(PAT),必须确保该令牌创建时勾选了以下权限:

  • repo:私有仓库读写权限
  • write:packages:包上传权限
  • read:packages:包下载权限
    如果原有令牌权限不全,需要重新生成令牌替换settings.xml中server节点下的password值。

2. 修正Spring Boot打包配置

由于你引入了spring-boot-maven-plugin,默认会将项目打包为可执行的Fat Jar,GitHub Packages不允许直接发布无分类器的可执行Jar作为依赖构件,可通过以下两种方式解决:

方式1:为可执行包添加分类器

在pom.xml的spring-boot-maven-plugin节点添加配置:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <classifier>exec</classifier>
    </configuration>
</plugin>

该配置会同时生成普通依赖Jar和带exec后缀的可执行Jar,仅普通Jar会被作为依赖发布。

方式2:移除Spring Boot打包插件

如果你的项目仅作为依赖包使用,不需要可执行能力,可以直接删除pom.xml中的spring-boot-maven-plugin插件节点。

3. 检查版本发布规则

GitHub Packages默认禁止覆盖已发布的正式Release版本:

  • 如果你之前已经成功上传过0.0.3版本的包,需要将pom.xml中的version值升级为新的版本号(如0.0.4),或进入GitHub仓库的Packages页面删除旧版本的对应包后再重试。
  • 如果你需要允许覆盖快照版本,确保settings.xml中对应仓库的snapshots.enabled配置为true(你当前配置已经符合要求)。

4. 验证仓库地址拼写

确认pom.xml中distributionManagement.repository.url的格式为https://maven.pkg.github.com/你的GitHub用户名/仓库名,你当前的配置拼写正确,无需修改。

完成以上调整后,重新执行mvnw clean deploy即可完成发布。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:15:01