maven用的阿里镜像,下载jar包总是出错,报错找不到证书,仓库中出现lastupdated文件

本文记录了解决Maven项目中HTTPS镜像证书验证失败的问题,通过更换阿里云Maven镜像源为HTTPS,并在IDEA中配置证书忽略策略,成功解决了项目无法启动的问题。

遇到的问题(踩坑记录,记录下来,警示自己):
运行以前项目的时候项目起不来,pom报错sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target,本地仓库查看出现lastupdated文件。
此时我的maven镜像如下:

<mirror>  
     <id>aliyun</id>  
     <name>aliyun Maven</name>  
     <mirrorOf>*</mirrorOf>  
     <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
 </mirror>

网上好多人说阿里的http不能用了换成https的了,这个不太确定啊,有知道的可以说下,我这里是一直调不通有问题,没办法只能硬着头皮尝试,于是换成如下镜像:

<!-- 阿里云公共代理库使用指南:https://help.aliyun.com/document_detail/102512.html?spm=a2c40.aliyun_maven_repo.0.0.36183054oSYFKS -->
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <mirrorOf>*</mirrorOf>    
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

https需要证书啊,接下来在idea中添加忽略证书校验参数,settings -> 搜maven -> Runner -> VM Options中输入:

-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true

或者安装证书,安装过程可以参考下方链接。
然后idea右边的Maven Project先clean,再package或者install,成功下载jar包!
我的是下载完并build success后,重启了一下idea(害怕maven 索引有缓存),报错标红彻底消失了!

可能每个人的情况不同啊,不一定都适用,写这篇只是为了自己做个记录!

最后再附上清除maven仓库lastupdated文件的指令:

@echo off
rem 你的仓库路径
set REPOSITORY_PATH=C:\maven\repository
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
    echo %%i
    del /s /q "%%i"
)
pause

本文参考如下:
https://www.cnblogs.com/wpbxin/p/11746229.html
https://www.cnblogs.com/kukai/p/12666878.html

### Maven Jar 下载失败的原因及解决方法 Maven 是一种强大的构建工具,但在实际开发过程中可能会遇到 jar 无法正常下载的情况。以下是可能导致此问题的主要原因以及相应的解决方案。 #### 1. **网络连接不稳定** 如果网络环境较差或者访问远程仓库的速度较慢,则可能造成 jar 部分数据丢失或超时中断,从而导致下载失败[^1]。 #### 解决方案 - 配置国内镜像源可以有效提升下载速度并减少错误率。例如,在 `settings.xml` 文件中添加阿里云的中央仓库地址: ```xml <mirrors> <mirror> <id>aliyun</id> <name>Aliyun Repository</name> <url>https://maven.aliyun.com/repository/public</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> ``` #### 2. **本地缓存文件损坏** 当前版本的 Maven 可能会在某些情况下保存不完整的 `.lastUpdated` 文件或其他临时文件至本地存储目录。这会使后续请求被忽略而不再触发新的下载行为[^3]。 #### 解决方案 清理受影响的依赖项路径下的所有带有 `.lastUpdated` 后缀名的标记文档即可恢复正常流程;另外也可以直接移除整个对应模块所在的子文件夹再执行更新指令来彻底刷新状态[^5]: ```bash rm -rf ~/.m2/repository/<group-id>/<artifact-id>/ mvn clean install ``` #### 3. **目标资源不存在于指定位置** 若所声明的坐标确实不到匹配的实际制品(比如官方已废弃该项目或将它迁移到了其他地方),自然也无法完成加载过程[^4]。 #### 解决措施 手动查最新可用替代品链接后按照如下方式引入自定义构件到工程里头去满足需求: ```bash mvn install:install-file \ -Dfile=<path-to-file>/your-jar-with-dependencies.jar \ -DgroupId=example.group.id \ -DartifactId=custom-artifact-name \ -Dversion=0.0.1-SNAPSHOT \ -Dpackaging=jar ``` 上述命令中的参数需依据实际情况调整填写具体数值。 --- ```python import os def clear_maven_cache(group_id, artifact_id): """清理特定 Maven 缓存""" cache_path = f"{os.getenv('HOME')}/.m2/repository/{group_id.replace('.', '/')}/{artifact_id}" if os.path.exists(cache_path): print(f"正在删除 {cache_path}...") os.system(f'rm -r "{cache_path}"') else: print("未到相关缓存") if __name__ == "__main__": group_id = input("请输入 groupId (e.g., org.springframework): ") artifact_id = input("请输入 artifactId (e.g., spring-core): ") clear_maven_cache(group_id, artifact_id) ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值