Maven学习总结(38)——Maven下载失败文件夹批量删除问题的两种解决方法

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://zhanghaiyang.blog.csdn.net/article/details/71475010
用过Maven的应该都遇到过,当网速不好或者源有问题的时候,Maven的依赖包经常下载失败。 下载失败后在本地仓库对应的文件夹中有一个以.lastUpdated结尾的文件,如果不手动删除这个文件,就不能重新更新依赖,重新下载对应的jar包。
一般情况下遇到的时候可能直接手动找到目录删除。
当出现很多这样的情况时,一个个找起来也很麻烦。
方法一:

Linux:

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;


Windows:

cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i

方法二:

通过一段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通过后面的参数来删除本地仓库中无效的文件。

展开阅读全文

没有更多推荐了,返回首页