执行mvn package命令报401 Unauthorized错误,求解决方法
这问题我熟得很,401 Unauthorized明明白白就是Maven没给Nexus仓库传递正确的认证信息,直接被仓库拒之门外了。按下面几步来排查解决:
给settings.xml补上Nexus认证信息
你得在settings.xml的<servers>节点下添加对应仓库的账号密码,注意这里的<id>必须和你镜像配置里的<id>nexus</id>完全一致,Maven靠这个id来关联认证信息和仓库:<servers> <server> <id>nexus</id> <username>你的Nexus登录用户名</username> <password>你的Nexus登录密码</password> </server> </servers>确认Nexus用户的仓库权限
登录你的Nexus后台(http://10.220.110.10:8081),检查你用的这个用户有没有halosys-group仓库的读取权限。毕竟是私有仓库,没权限的话肯定不让你拉取依赖。排查密码特殊字符的转义问题
如果你的密码里有&、<、>这类特殊字符,在XML里得转义才行——比如&要写成&,<写成<,不然Maven读出来的密码会是错的。验证配置并调试
保存好settings.xml后,先试试执行mvn package -U(-U是强制更新依赖快照),看还会不会报错。要是还不行,就加个-X开调试模式,看看详细日志:mvn package -U -X从调试日志里能清楚看到Maven有没有正确读取认证信息,以及Nexus到底为啥拒绝你。
Nexus3用户额外检查
要是你用的是Nexus3,别忘了确认halosys-group这个仓库组是不是包含了maven-central的代理仓库,而且代理仓库的配置得是对的。另外,用户权限要分配到仓库组或者对应的代理仓库上才行。
内容的提问来源于stack exchange,提问作者iamarunk
相关产品推荐
相关产品推荐

