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

Maven部署失败401未授权:Jenkins流水线部署求助

Maven Deploy到Nexus出现401 Unauthorized(Jenkins流水线失败/本地成功)

错误信息

[ERROR] 在项目maven-web-application上执行目标org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy(default-deploy)失败:部署构件失败:无法将构件com.mt:maven-web-application:war:2.0.7-20230110.202313-1从/传输到nexus(http://172.31.7.102:8081/repository/maven-snapshots/):访问http://172.31.7.102:8081/repository/maven-snapshots/com/mt/maven-web-application/2.0.7-SNAPSHOT/maven-web-application-2.0.7-20230110.202313-1.war认证失败,状态码:401 Unauthorized

排查解决方案

  • 核对Jenkins节点的Maven settings.xml:本地构建成功不代表Jenkins运行节点(含远程节点)的settings.xml与本地一致。登录Jenkins节点服务器,找到Maven安装目录下的conf/settings.xml,或Jenkins全局配置指定的settings文件,确认<server>节点的用户名、密码正确,且id与pom中distributionManagement的仓库id完全匹配:
    <servers>
      <server>
        <id>nexus</id> <!-- 必须与pom内distributionManagement/repository/id完全一致 -->
        <username>nexus-deploy-account</username>
        <password>your-deploy-password</password>
      </server>
    </servers>
    
  • 验证Jenkins凭证配置:若流水线用Jenkins凭证管理注入认证信息,检查凭证类型(需为用户名+密码)、凭证ID是否在流水线脚本/Maven配置中正确引用,且对应Nexus账号拥有maven-snapshots仓库的部署权限(Nexus需分配nx-repository-view-maven2-maven-snapshots-add和nx-repository-view-maven2-maven-snapshots-edit权限)。
  • 检查Jenkins运行用户权限:确认Jenkins服务运行用户(如jenkins用户)有权读取settings.xml文件,避免因文件权限不足导致无法加载认证信息,可执行ls -l /path/to/jenkins/used/settings.xml查看权限。
  • 模拟Jenkins环境测试部署:在Jenkins节点上直接执行mvn clean deploy -s /path/to/jenkins/used/settings.xml,模拟Jenkins运行环境测试部署,排除流水线脚本本身的问题。
  • 检查Nexus仓库部署策略:确认maven-snapshots仓库的Deployment policy设置为Allow redeploy,若为禁止部署会返回401/403状态码。
  • 排查流水线脚本的Maven参数:确认流水线中是否通过mavenSettingsFile参数或-s命令行参数指定了错误的settings文件路径。

内容的提问来源于stack exchange,提问作者Samuel Brandy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:15:51