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

本文介绍了一段Java代码实现的小工具,用于自动清理Maven本地仓库中因下载失败而产生的无效文件,避免手动查找和删除繁琐操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

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

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值