前几天向maven中央仓库发布版本,执行上传命令mvn release:perform
时报错了:
我的maven中央仓库的账号注册了好多年了,一直正常使用,没有出现过问题。
最终找到mave官方说明:知道了原因:
此错误消息表示您可能通过提供
用户名
和密码
明文验证执行到OSSRH的发布。然而这是以前允许的与OSSRH交互的方式,现在OSSRH发布的身份验证过程的更改了,要求使用用户令牌
机制。我们的有关于的文档会对您有所帮助。
如果你是maven中央仓库的老用户,而不是新注册用户,而且忽略了最近Sonatype启用了新的基于令牌的身份验证机制,则可能遇到与我同样的情况。
以前我们在$HOME/.m2/settings.xml
如下以明文形式保存maven中央仓库的验证信息
<server>
<id>sonatype-nexus-snapshots</id>
<username>${username}</username>
<password>${password}</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>${username}</username>
<password>${password}</password>
</server>
新的基于令牌的身份验证机制要求将<username>
和<password>
字段以加密令牌形式保存。
需要参照登录Nexus Repository Manager后台,在Profile/User Token/Access User Token
界面如下 获取你的令牌