您的位置:首页 > 其它

小工具 - 批量删除Maven下载失败的文件夹

2016-05-17 00:00 337 查看
用过Maven的应该都遇到过,当网速不好或者源有问题的时候,Maven的依赖包经常下载失败。
下载失败后在本地仓库对应的文件夹中有一个以
.lastUpdated
结尾的文件,如果不手动删除这个文件,就不能重新更新依赖,重新下载对应的jar包。
一般情况下遇到的时候可能直接手动找到目录删除。
当出现很多这样的情况时,一个个找起来也很麻烦。
因此本文提供一个小工具,就是一段Java代码,通过这段代码来删除。

public class CleanMvn {
public static void main(String[] args){
if(args.length != 1){
print("使用方法错误,方法需要一个参数,参数为mvn本地仓库的路径");
}
findAndDelete(new File(args[0]);
}

public static boolean findAndDelete(File file){
if(!file.exists()){
} else if(file.isFile()){
if(file.getName.endsWith("lastUpdated")){
deleteFile(file.getParentFile());
return true;
}
} else if(file.isDirectory()){
File[] files = file.listFiles();
for(File f : files){
if(findAndDelete(f)){
break;
}
}
}
return false;
}

public static void deleteFile(File file){
if(!file.exists()){
} else if(file.isFile()){
print("删除文件:" + file.getAbsolutePath());
file.delete();
} else if(file.isDirectory()){
File[] files = file.listFiles();
for(File f : files){
deleteFile(f);
}
print("删除文件夹:" + file.getAbsolutePath());
print("====================================");
file.delete();
}
}

public static void print(String msg){
System.out.println(msg);
}
}

可以在IDE中指定参数后运行这段代码,例如直接调方法
findAndDelete(new File("d:\\.m2\\repository"));


或者在命令行下执行这段代码:

首先
javac CleanMvn.java
编译为
.class
文件。

然后
java CleanMvn d:\.m2\repository
通过后面的参数来删除本地仓库中无效的文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: