解决maven deploy时报401 ReasonPhrase: Unauthorized 错误

详细报错信息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project duy-user: Failed to deploy artifacts: Could not transfer artifact com.dopp.voor:duy-user:pom:1.31.0-20170620.020558-8 from/to snapshots (http://dev-mvn.***.com/content/repositories/snapshots/): Failed to transfer file: http://dev-mvn.***.com/content/repositories/snapshots/com/dopp/voor/duy-user/1.31.0-SNAPSHOT/duy-user-1.31.0-20170620.020558-8.pom. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]

[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException


关键错误信息1: Failed to deploy artifacts

关键错误信息2: Could not transfer artifact com.*:*:pom:* from/to snapshots (http://dev-mvn.***.com/content/repositories/snapshots/)

关键错误信息3 Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]


提取关键错误信息:Could not transfer …… from/to snapshots …… Return code is: 401, ReasonPhrase: Unauthorized.

很明显了,deploy的时候,权限不够大。于是排查maven setting配置文件,最终在<servers>……</servers>配置节点中增加如下配置,问题解决:

解决问题:

<server>
    <id>snapshots</id>
    <username>deployment</username>
    <password>l****11</password>
</server>

参考信息:

<!--配置服务端的一些设置。一些设置如安全证书不应该和pom.xml一起分发。这种类型的信息应该存在于构建服务器上的settings.xml文件中。-->
 <servers>
  <!--服务器元素包含配置服务器时需要的信息 -->
  <server>
   <!--这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配。-->
   <id>snapshots</id>
   <!--鉴权用户名。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。 -->
   <username>my_login</username>
   <!--鉴权密码 。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。密码加密功能已被添加到2.1.0 +。详情请访问密码加密页面-->
   <password>my_password</password>
   <!--鉴权时使用的私钥位置。和前两个元素类似,私钥位置和私钥密码指定了一个私钥的路径(默认是${user.home}/.ssh/id_dsa)以及如果需要的话,一个密语。将来passphrase和password元素可能会被提取到外部,但目前它们必须在settings.xml文件以纯文本的形式声明。 -->
   <privateKey>${usr.home}/.ssh/id_dsa</privateKey>
   <!--鉴权时使用的私钥密码。-->
   <passphrase>some_passphrase</passphrase>
   <!--文件被创建时的权限。如果在部署的时候会创建一个仓库文件或者目录,这时候就可以使用权限(permission)。这两个元素合法的值是一个三位数字,其对应了unix文件系统的权限,如664,或者775。 -->
   <filePermissions>664</filePermissions>
   <!--目录被创建时的权限。 -->
   <directoryPermissions>775</directoryPermissions>
  </server>
 </servers>


解决这个问题最关键要明白,下面配置的作用。
<!--服务器元素包含配置服务器时需要的信息 -->
  <server>
   <!--这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配。-->
   <id>snapshots</id>
  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
Maven deploy status: 401 Unauthorized表示Maven部署失败,返回了未授权的状态码401。这通常是由于访问凭据不正确或缺失而引起的。 造成此问题的可能原因有以下几点: 1. 访问凭据错误:部署到Maven仓库需要提供正确的用户名和密码。如果凭据错误或丢失,就会返回401未授权的错误。确保提供的用户名和密码是正确的,并且具有访问仓库所需的权限。 2. 凭据配置错误:在Maven的settings.xml配置文件中,凭据可能没有正确配置。检查该文件,确保仓库的凭据正确配置,并且与部署命令中使用的凭据相匹配。 3. 仓库访问权限:某些Maven仓库可能需要使用特定的权限或角色才能进行部署操作。检查你是否被授予了正确的权限,并且具有执行部署操作的权限。 4. 仓库地址错误:请确保在Maven的pom.xml文件或命令行参数中使用了正确的仓库地址。如果仓库地址错误Maven将无法连接到正确的仓库进行部署操作。 解决Maven deploy status: 401 Unauthorized问题的方法包括: 1. 检查凭据:确保提供的凭据是正确的,包括正确的用户名和密码,并且具有相应仓库的访问权限。 2. 检查配置:检查Maven的settings.xml配置文件中的仓库凭据配置是否正确,确保凭据与部署命令中使用的凭据相匹配。 3. 申请权限:如果你没有正确的权限来访问仓库进行部署操作,请联系管理员或仓库所有者申请相应的权限。 4. 检查仓库地址:确保在部署命令或pom.xml文件中使用了正确的仓库地址,以便Maven能够连接到正确的仓库进行部署。 总之,Maven deploy status: 401 Unauthorized表示Maven部署过程中出现了未授权的错误401,你需要检查和确保提供的凭据、配置、权限和仓库地址都是正确的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值