- 1 前言
- 2 获取maven下载失败的依赖目录
项目中很普遍使用maven进行项目的构建,但是使用maven时,由于网络不稳定,或者需要FQ等因素,导致部分jar可能下载失败,只能重新下载才能使项目正常启动。
你有没有下载maven失败的困扰?重新Reload All Maven Project没有效果?实际上,maven在第一次下载依赖时,会创建一个目录,一旦网络不好下载失败,下次不会再次下载了,除非你找到失败的那的目录,删除后,才能重新下载。
如何快速找到那个依赖报错了呢?不多唠叨了,见下文解决方案。
2 获取maven下载失败的依赖目录直接上代码:
package com.smilehappiness.utils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class MavenFailJarUtil {
private static Logger logger = LoggerFactory.getLogger(MavenFailJarUtil.class);
public static List getFilesList(String path, String suffix, boolean flag) {
List lstFileNames = new ArrayList<>();
File file = new File(path);
return MavenFailJarUtil.listFile(lstFileNames, file, suffix, flag);
}
private static List listFile(List fileNameList, File file, String suffix, boolean flag) {
// 若是目录, 采用递归的方法遍历子目录
if (file.isDirectory()) {
File[] t = file.listFiles();
for (int i = 0; i < t.length; i++) {
if (flag || t[i].isFile()) {
listFile(fileNameList, t[i], suffix, flag);
}
}
} else {
//判断当前文件是不是下载失败的
String filePath = file.getAbsolutePath();
if (StringUtils.isBlank(suffix)) {
//后缀名, 为空则表示遍历所有文件
fileNameList.add(filePath);
} else {
// 最后一个.(即后缀名前面的.)的索引
int begIndex = filePath.lastIndexOf(".");
// 这里可以筛选指定后缀的文件
if (begIndex != -1) {
String tempSuffix = filePath.substring(begIndex + 1);
// sha1-in-progress包含in-progress
// 这里因为指定的后缀与截取.的后缀,名字不一致,所以加一个|| tempsuffix.contains(suffix)条件
if (tempSuffix.equals(suffix) || tempSuffix.contains(suffix)) {
fileNameList.add(filePath);
}
}
}
}
return fileNameList;
}
public static void main(String[] args) {
// window系统下:"G:\repository" 或者 mac系统下:/Users/smilehappiness/Desktop/MyWorkPlace/repository
List list = getFilesList("/Users/smilehappiness/Desktop/MyWorkPlace/repository", "lastUpdated", true);
logger.debug("依赖下载失败的个数:{}", list.size());
logger.info("依赖下载失败的依赖目录:{}", list);
}
}
写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!
如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!
给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!



