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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 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。


相关文章
|
2天前
|
前端开发 JavaScript Java
Java构建工具-maven的复习笔记【适用于复习】
这篇文档由「潜意识Java」创作,主要介绍Maven的相关知识。内容涵盖Maven的基本概念、作用、项目导入步骤、依赖管理(包括依赖配置、代码示例、总结)、依赖传递、依赖范围以及依赖的生命周期等七个方面。作者擅长前端开发,秉持“得之坦然,失之淡然”的座右铭。期待您的点赞、关注和收藏,这将是作者持续创作的动力! [个人主页](https://blog.csdn.net/weixin_73355603?spm=1000.2115.3001.5343)
12 3
|
4月前
|
Java Maven Windows
使用Java创建集成JACOB的HTTP服务
本文介绍了如何在Java中创建一个集成JACOB的HTTP服务,使Java应用能够调用Windows的COM组件。文章详细讲解了环境配置、动态加载JACOB DLL、创建HTTP服务器、实现IP白名单及处理HTTP请求的具体步骤,帮助读者实现Java应用与Windows系统的交互。作者拥有23年编程经验,文章来源于稀土掘金。著作权归作者所有,商业转载需授权。
使用Java创建集成JACOB的HTTP服务
|
4月前
|
Java Maven
Maven编译报错
Maven编译报错
85 1
|
28天前
|
Java Maven
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
在执行Maven项目中的`install`命令时,遇到编译插件版本不匹配的错误。具体报错为:`maven-compiler-plugin:3.13.0`要求Maven版本至少为3.6.3。解决方案是将Maven版本升级到3.6.3或降低插件版本。本文详细介绍了如何下载、解压并配置Maven 3.6.3,包括环境变量设置和IDEA中的Maven配置,确保项目顺利编译。
1739 4
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
|
1月前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
94 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
28天前
|
缓存 Java Maven
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法!在处理Maven项目问题时,首先检查Maven配置是否正确。接着通过“File--Invalidata Caches”清除IDEA缓存并重启。使用Maven命令`mvn dependency:purge-local-repository`和`mvn dependency:resolve`清除本地依赖缓存。最后,在Terminal中输入`mvn clean install`完成构建。
【简单四步教你解决♥十分有效】Maven依赖报错、依赖或插件导入失败的万能解决办法
|
2月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
83 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
5月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之遇到报错:HTTP状态码400,该如何处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
3月前
|
JavaScript 前端开发 开发工具
【Azure Developer】使用JavaScript通过SDK进行monitor-query的client认证报错问题
AADSTS90002: Tenant 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' not found. Check to make sure you have the correct tenant ID and are signing into the correct cloud. Check with your subscription administrator, this may happen if there are no active subscriptions for the tenant.

热门文章

最新文章