记录 Maven Nexus不下载最新SNAPSHOT jar的问题
摘要
遇到一个奇怪的问题,Maven 私服发生过迁移。同一个域名,但是IP发生变化,例如 10.1.0.1,迁移到了10.1.0.2。
现象是Maven总是从旧的10.1.0.1 Nexus私服下载jar包。
排查
- mvn 加上-X参数,检查 nexus私服 域名是否正确。
- 检查所有 settings.xml 文件,私服域名是否正确。
- 删除本地local缓存
- 检查DNS解析是否正确
排查结果
- nexus 私服域名完全正确
- settings.xml 文件私服域名正确。
- 删除缓存无效
- DNS域名解析正确。
最终结论
发现settings.xml 中有一个http代理,改成active=false后正常。
<proxy>
<id>httpProxy</id>
<active>true</active>
<protocol>http</protocol>
<host>10.1.0.1</host>
<port>3128</port>
</proxy>
具体原因未深究。奇怪的是 3128 不是 nexus 的端口。
推测
由于走了HTTP代理,而代理和旧私服在同一个机器上,因而被解析到本地相同端口的Nexus服务。
即: nexus.xxx.com 因为走了 10.1.0.1代理,流量转发到 10.1.0.1, 而到这台机器后,域名失效,变成本地服务了。
解决办法
proxy配置加入 nonProxyHosts:
<nonProxyHosts>nexus.xxx.com</nonProxyHosts>