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

630 阅读1分钟

用过Maven的应该都遇到过,当网速不好或者源有问题的时候,Maven的依赖包经常下载失败。

下载失败后在本地仓库对应的文件夹中有一个以.lastUpdated结尾的文件,如果不手动删除这个文件,就不能重新更新依赖,重新下载对应的jar包。

一般情况下遇到的时候可能直接手动找到目录删除。

当出现很多这样的情况时,一个个找起来也很麻烦。

因此本文提供一个小工具,就是一段Java代码,通过这段代码来删除。

import java.io.File;

public class CleanMvn
{
    public static void main(String[] args)
    {
        // 这里修改你的mvn仓库地址
        String mvnPath = "d:\\.m2\\repository";
        if (mvnPath.length() > 0)
        {
            findAndDelete(new File(mvnPath));
        }
    }

    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);
    }
}

修改mvnPath运行main方法