Maven部署至Nexus仓库遇401 Unauthorized认证失败求助
优先检查Maven认证配置优先级
Maven会优先读取用户目录下的~/.m2/settings.xml(或全局conf/settings.xml)的服务器认证信息,而非仅依赖pom.xml。需确保配置与仓库ID完全匹配:<settings> <servers> <server> <id>nexus-snapshots</id> <!-- 必须和pom.xml中仓库id一致 --> <username>你的Nexus用户名</username> <password>你的Nexus密码</password> </server> </servers> </settings>验证Nexus用户权限
登录Nexus控制台,确认该用户拥有maven-snapshots仓库的Deploy权限,且账号未被锁定或禁用。快照仓库必须授予Deploy权限才能上传构件。核对pom.xml部署配置
确保pom.xml的distributionManagement块中,仓库ID与settings.xml的server ID一致,URL无拼写错误:<distributionManagement> <snapshotRepository> <id>nexus-snapshots</id> <url>http://64.227.148.173:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>注意URL末尾斜杠不可省略,部分Nexus版本对路径格式敏感。
直接测试认证有效性
用curl命令验证账号密码是否能正常访问仓库:curl -u 用户名:密码 http://64.227.148.173:8081/repository/maven-snapshots/com/example/java-maven-app/1.1.0-SNAPSHOT/maven-metadata.xml返回200/404(元数据未创建属正常)说明认证有效;仍返回401则需检查账号密码或权限。
查看Maven调试日志
执行mvn -X deploy,搜索日志中authentication相关输出,确认Maven实际加载的认证信息是否正确,排查是否存在配置文件冲突。检查Nexus仓库设置
确认maven-snapshots仓库的Deployment Policy设置为Allow Redeploy,确保仓库URL与pom.xml配置完全一致。
内容的提问来源于stack exchange,提问作者Sudip Maity_167
相关产品推荐
相关产品推荐

