您现在的位置是:首页 >技术交流 >MVN版本过高引起的问题网站首页技术交流
MVN版本过高引起的问题
简介MVN版本过高引起的问题
mvn版本过高以后在eclipse打包没有问题,在命令行打包,系统提示
Downloading from maven-default-http-blocker
抓狂。查了一下,原来是下载依赖的时候有警告,依赖下载不下来,仔细看地址有问题,编程0.0.0.0了:
Downloading from maven-default-http-blocker: http://0.0.0.0/com/jeremytsai/jeremy-basic-common/1.0.0/maven-metadata.xml
[WARNING] Could not transfer metadata com.jeremytsai:jeremy-basic-common:1.0.0/maven-metadata.xml from/to maven-default-http-blocker (http://0.0.0.0/): transfer failed for http://0.0.0.0/com/jeremytsai/jeremy-basic-common/1.0.0/maven-metadata.xml
搜索了一下,发现从3.8.1版本开始,maven禁止了从http协议的仓库地址下载依赖。
解决办法通过配置mirror来突破限制。
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>blocker</mirrorOf>
<name>用于突破maven-3.8.1版本以后默认禁用http仓库的限制</name>
<url>http://0.0.0.0/</url>
</mirror>
以可以切换为旧版本的maven,就没有该限制。
其他解决办法
- 降低Maven版本【推荐这个方法,简单高效】
- 将私有仓库升级为https
- 通过配置mirror解决
不同于上文,maven限制的是repository不能使用http,没有限制mirror不能使用,可以将自己的私有仓库写在mirror中而不是repository。该方法同样简单。
<mirror>
<id>jeremy-maven</id>
<mirrorOf>*</mirrorOf>
<name>自己的公共仓库</name>
<url>http://1.2.3.4/repository/public</url>
</mirror>
参考资料:
How to disable maven blocking external HTTP repositories? - Stack Overflow
:
最后,总结一下
方法一:使用mvn3.8.8版本,屏蔽http://0.0.0.0/
下载地址:https://maven.apache.org/download.cgi
D: 0.gitxxxx>mvn -version
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: D:Dev_Javaapacheapache-maven
Java version: 1.8.0_372, vendor: Azul Systems, Inc., runtime: D:Dev_JavaJavaJDK1.8-Zulu8jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"
修改C:Usersxzknet.m2settings.xml
<mirrors>
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>blocker</mirrorOf>
<name>用于突破maven-3.8.1版本以后默认禁用http仓库的限制</name>
<url>http://0.0.0.0/</url>
</mirror>
</mirrors>
方法二:
降低mvn版本为3.8.1之前的老版本。截止2023-4-26,3.8.1之前最高版本3.6.3
https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip
以上两个方法,本人都已经验证过,你可以搞你自己的配置了。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。