maven报错:com.qiniu:qiniu-java-sdk/maven-metadata.xmlfailed to transfer from http://0.0.0.0/

简介: maven报错:com.qiniu:qiniu-java-sdk/maven-metadata.xmlfailed to transfer from http://0.0.0.0/

1.问题情况

🌿 英文报错

com.qiniu:qiniu-java-sdk/maven-metadata.xmlfailed to transfer from http://0.0.0.0/ during a previous attempt. This failure was cached in the local repository and resolution will not be reattempted until the update interval of maven-default-http-blocker has elapsed or updates are forced. Original error: Could not transfer metadata com.qiniu:qiniu-java-sdk/maven-metadata.xml from/to maven-default-http-blocker (http://0.0.0.0/): transfer failed for http://0.0.0.0/com/qiniu/qiniu-java-sdk/maven-metadata.xml

🌿 中文意思

com.qiniu:qiniu java sdk/maven元数据。xml无法从转移http://0.0.0.0/在先前的尝试期间。此故障缓存在本地存储库中,在maven默认http拦截器的更新间隔结束或强制更新之前,不会重新尝试解决。原始错误:无法传输元数据com.qiniu:qiniu java sdk/maven元数据。xml从/到maven默认http拦截器(http://0.0.0.0/):传输失败http://0.0.0.0/com/qiniu/qiniu-java-sdk/maven-metadata.xml

2.问题分析

因为使用HTTP协议下载依赖,可能会导致中间人攻击。所以Maven 3.8.1就在默认配置文件中增加了一组标签,禁止了所有HTTP协议的Maven仓库。

因此使用maven3.8.1,如果仓库镜像是http 而不是https 就会被拦截禁止访问。

很多公司内部的maven仓库一般都是http协议,而Maven 3.8.1禁止了http协议,那么就会导致一些报错。

中间人攻击解释来自:中间人攻击

所谓中间人攻击就是在A和B通信的过程中加入了恶意攻击者C。C作为中间人转发两者的请求。

上面是一个完整的中间人攻击流程:

  1. A向B请求公钥,但是却被C截获。
  2. C向B发送公钥请求。
  3. B将公钥发给C。
  4. C截获了B的公钥,然后替换成自己的公钥发给A。
  5. A将C的公钥当成了B的公钥,并用其加密信息,发给B。
  6. C截获了加密信息,用自己的私钥解密,获得明文。同时伪造新的信息,再用B的公钥加密,发给B。
  7. B获得加密信息,用自己的私钥解密。

3.问题解决

如果你为idea配置的settings.xml是含有如下:

将该组mirror标签注释掉即可,如下图:

4.其它思考(一定要看)

其实我感到很诧异,上述settings.xml我早已经不再使用,我是为Idea指定了新的settings.xml文件,放在了用户文件下的.m2下,并且修改为了阿里镜像。

按道理来说是没有拦截http的标签(在指定新的settings.xml时已经被我删除),而且这个报错问题也是突然发生的,之前没遇见过。

但考虑到报错信息中谈到了http被拦截问题,并且我并未去注释idea自带settings,xml的http拦截器标签,于是我在阿里镜像的url中修改成了https路径:

保存过后再去项目中刷新maven或者执行clean、package、install等操作,没有再报错了。

这就很奇怪了,我明明指定的.m2文件下没有拦截标签的settings.xml文件,却依旧是参考了idea自带settings.xml文件中的http被拦截规则(http拦截器生效),导致 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>中由于访问路径是http而被http拦截器拦截而报错。

考虑到之前进行的所有Maven操作我都是能正常使用,这次的报错偶然性的,因为我在后来又将.m2下的settings.xml中的路径改为了http,并且并没有注释掉idea自带settings.xml的http拦截器标签,因此我目前只能归结为是 idea 的系统混乱Bug。


相关文章
|
11天前
|
JavaScript Java Maven
云效产品使用常见问题之android sdk 构建出aar后,上传到私有maven仓库失败如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2天前
|
Java 测试技术 Maven
Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
|
2天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
15 0
|
2天前
|
Java 微服务
IDEA报错There is insufficient memory for the Java Runtime Environment to continue.
IDEA报错There is insufficient memory for the Java Runtime Environment to continue.
|
3天前
|
分布式计算 DataWorks 监控
DataWorks操作报错合集之DataWorks在调用java sdk的createFile功能时报错com.aliyuncs.exceptions.ClientException: 1201111000 如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
9 1
|
4天前
|
JavaScript Serverless API
Serverless 应用引擎操作报错合集之在Serverless 应用引擎中,FC3.0读取response body的时候出现错误提示"Caused by: java.io.IOException: closed"如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
18 3
|
8天前
|
安全 Go
解决https页面加载http资源报错
请注意,混合内容可能导致安全性问题,因此在使用上述方法时要小心。最好的方式是尽量减少或完全消除混合内容,以确保页面的安全性。
8 0
|
9天前
|
Java Linux 应用服务中间件
Linux启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
Linux启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
8 0
|
11天前
|
缓存 弹性计算 Java
云效产品使用报错问题之maven仓设置为私有后,赋予成员权限未生效,拉包401要如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
14天前
|
Java Spring
java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 报错的解决办法
java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 报错的解决办法
15 0

推荐镜像

更多