推送Kotlin库到Maven仓库时返回403错误该如何解决?
403 Forbidden错误属于远端仓库的权限拒绝类报错,本地Maven Local发布正常说明打包、发布流程的基础逻辑没有问题,问题均出在远端仓库权限及关联配置上,可能的原因和对应解决方法如下:
- 凭据配置错误
多数403问题都是由凭证配置错误导致:- 确认你配置的
username、password是否正确:很多私有Maven仓库的password字段需要填写后台生成的部署Token,而非你的账号登录密码 - 不建议将凭证硬编码在构建脚本中,推荐放到本地
gradle.properties文件中管理,修改方式如下:
首先在gradle.properties中添加配置:
再修改构建脚本中的凭证配置:mavenRepo.username=你的实际用户名 mavenRepo.password=你的部署Token/密码credentials { username = project.properties["mavenRepo.username"].toString() password = project.properties["mavenRepo.password"].toString() } - 确认你配置的
- 仓库权限未开通
- 确认你填写的仓库URL
https://mymavenrepo.com/repo/oeXkQu5cUtNHmcWwJd1R/对应的仓库是否开启了写入权限,多数仓库默认只有只读权限,需要在后台手动开启部署写入权限 - 确认你的
groupId为com.test.public是否在该仓库的允许发布范围内,部分仓库会限制只能发布指定前缀的包
- 确认你填写的仓库URL
- 版本覆盖被禁止
如果你之前已经向该仓库发布过1.0.0版本的构件,绝大多数Maven仓库默认禁止覆盖已发布的版本,也会返回403:- 可以升级版本号到
1.0.1后重新尝试发布 - 如果确实需要覆盖旧版本,需要到仓库后台开启「允许版本覆盖」的配置
- 可以升级版本号到
- 缺少构件签名
你的构建脚本中引入了signing插件但未配置签名规则,部分仓库要求所有发布的构件必须携带GPG签名,缺少签名文件也会被拒绝:
补全签名配置即可:signing { sign(publishing.publications["maven"]) }
内容的提问来源于stack exchange,提问作者user1354879
相关产品推荐
相关产品推荐

