在进行创建maven工程自动导入对应的依赖或者执行 mvn install 时提示如下的错误信息:
Could not transfer artifact xxx from/to xxx
无法解析 Failure to transfer *** from *** was cached in the local repository, resolution will not be reattempted until the update interval of alimaven has elapsed or updates are forced. Original error: Could not transfer artifact ***from/to alimaven (http://maven.aliyun.com/nexus/content/groups/public/): Connection reset
- /**
- * @Author: shenxinbo
- * @Date: 2023/11/17 10:48
- * @Package: PACKAGE_NAME
- */
-
- import java.io.File;
- import java.io.IOException;
-
- //列出File的一些常用操作
- public class util {
- /**
- * 遍历指定目录下(包括其子目录)的所有文件,并删除以 lastUpdated 结尾的文件
- * @param dir 目录的位置 path
- * @throws IOException
- */
- public static void listDirectory(File dir) throws IOException {
- if (!dir.exists())
- throw new IllegalArgumentException("目录:" + dir + "不存在.");
- if (!dir.isDirectory()) {
- throw new IllegalArgumentException(dir + " 不是目录。");
- }
- File[] files = dir.listFiles();
- if (files != null && files.length > 0) {
- for (File file : files) {
- if (file.isDirectory())
- //递归
- listDirectory(file);
- else{ // 删除以 lastUpdated 结尾的文件
- String fileName = file.getName();
- boolean isLastupdated = fileName.toLowerCase().endsWith("lastupdated");
- if (isLastupdated){
- boolean is_delete = file.delete();
- System.out.println("删除的文件名 => " + file.getName() + " || 是否删除成功? ==> " + is_delete);
- }
- }
- }
- }
- }
-
- public static void main(String[] args) throws IOException {
- // 指定maven的本地仓库
- listDirectory(new File("D:\\ideaMaven\\MavenRepository"));
- }
- }
这个问题主要就是在你下载相关的依赖包时,没有下载成功照成的,需要找到对应的maven库包,删除以 .lastUpdated 结尾的文件,然后重新下载,一般可以得到解决,如图所示
这里有一个脚本,删除maven本地仓库以 .lastUpdated 结尾的文件
- /**
- * @Date: 2023/11/17 10:48
- */
-
- import java.io.File;
- import java.io.IOException;
-
- //列出File的一些常用操作
- public class util {
- /**
- * 遍历指定目录下(包括其子目录)的所有文件,并删除以 lastUpdated 结尾的文件
- * @param dir 目录的位置 path
- * @throws IOException
- */
- public static void listDirectory(File dir) throws IOException {
- if (!dir.exists())
- throw new IllegalArgumentException("目录:" + dir + "不存在.");
- if (!dir.isDirectory()) {
- throw new IllegalArgumentException(dir + " 不是目录。");
- }
- File[] files = dir.listFiles();
- if (files != null && files.length > 0) {
- for (File file : files) {
- if (file.isDirectory())
- //递归
- listDirectory(file);
- else{ // 删除以 lastUpdated 结尾的文件
- String fileName = file.getName();
- boolean isLastupdated = fileName.toLowerCase().endsWith("lastupdated");
- if (isLastupdated){
- boolean is_delete = file.delete();
- System.out.println("删除的文件名 => " + file.getName() + " || 是否删除成功? ==> " + is_delete);
- }
- }
- }
- }
- }
-
- public static void main(String[] args) throws IOException {
- // 指定maven的本地仓库
- listDirectory(new File("D:\\ideaMaven\\MavenRepository"));
- }
- }
按照方法一删除maven本地仓库中的以 lastUpdated 结尾的文件,然后将maven的配置文件中的仓库镜像改为阿里云或者其他国内进行地址,重新import一下。
比如下面的镜像,在setting.xml中的mirrors中添加阿里云镜像
- <mirror>
- <id>alimavenid>
- <mirrorOf>centralmirrorOf>
- <name>aliyun mavenname>
- <url>http://maven.aliyun.com/nexus/content/repositories/central/url>
- mirror>
- <mirror>
- <id>alimavenid>
- <name>aliyun mavenname>
- <url>http://maven.aliyun.com/nexus/content/groups/public/url>
- <mirrorOf>centralmirrorOf>
- mirror>
重新加载pom.xml