最近升级Maven到3.8.1后,mvn编译的时候总是提示拉不到依赖,报错:
Could not validate integrity of download from http://0.0.0.0/…
关键字maven-default-http-blocker。
原因
如果使用HTTP协议下载依赖,可能会导致中间人攻击。比如,本来想下载一个nacos-client的,结果下载的结果中被插入了恶意代码,然后开发人员运行了一下,黑客就能获得开发人员的计算机控制权了。
所以Maven 3.8.1就禁止了所有HTTP协议的Maven仓库。
详情见Maven 3.8.1的发布日志
日常开发中,我们经常会用到公司内部的maven仓库。这些仓库一般都是http协议,Maven 3.8.1禁止了http协议,那么就会导致开头的报错。
解决方案
在~/.m2/setttings.xml中添加同名mirror,然后指定这个mirror不对任何仓库生效即可。
代码语言:javascript复制<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>!*</mirrorOf>
<url>http://0.0.0.0/</url>
</mirror>