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月前
|
Java Maven
Maven编译报错
Maven编译报错
66 1
|
3月前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之遇到报错:HTTP状态码400,该如何处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
27天前
|
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.
|
9天前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
24 0
|
28天前
|
存储 前端开发 NoSQL
拿下奇怪的前端报错(四):1比特丢失导致的音视频播放时长无限增长-浅析http分片传输核心和一个坑点
在一个使用MongoDB GridFS存储文件的项目中,音频和视频文件在大部分设备上播放时长显示为无限,而单独播放则正常。经调查发现,问题源于HTTP Range请求的处理不当,导致最后一个字节未被正确返回。通过调整请求参数,使JavaScript/MongoDB的操作范围与HTTP Range一致,最终解决了这一问题。此案例强调了对HTTP协议深入理解及跨系统集成时注意细节的重要性。
|
3月前
|
Java 持续交付 项目管理
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。它采用项目对象模型(POM)来描述项目,简化构建流程。Maven提供依赖管理、标准构建生命周期、插件扩展等功能,支持多模块项目及版本控制。在Java Web开发中,Maven能够自动生成项目结构、管理依赖、自动化构建流程并运行多种插件任务,如代码质量检查和单元测试。遵循Maven的最佳实践,结合持续集成工具,可以显著提升开发效率和项目质量。
52 1
|
3月前
|
开发工具 图形学 Android开发
Unity与安卓丨unity报错:SDK Tools version 0.0 < 26.1.1
Unity与安卓丨unity报错:SDK Tools version 0.0 < 26.1.1
|
3月前
|
开发工具 iOS开发 容器
【Azure Blob】关闭Blob 匿名访问,iOS Objective-C SDK连接Storage Account报错
【Azure Blob】关闭Blob 匿名访问,iOS Objective-C SDK连接Storage Account报错
|
4月前
|
Serverless 语音技术 开发工具
函数计算操作报错合集之怎么何集成nls tts python sdk
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
|
4月前
|
SQL JavaScript 前端开发
函数计算操作报错合集之HTTP触发器报404错误,是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。

热门文章

最新文章

推荐镜像

更多