专栏首页屈定‘s BlogMaven仓库清理脚本

Maven仓库清理脚本

工作中本地maven仓库随着项目增多会变得越来越大,看着心烦,于是想着清理. 没有发现很好的清理策略,只能从文件以及文件夹修改时间上入手,修改时间小于指定时间的文件夹以及文件都给删除,循环清理几次后仓库应该就干净了.

附上清理脚本,实际上就是递归遍历文件夹然后判断文件更新时间,对比后决定是否要删除.首次清理后仓库从1.5G变为650M,清爽了不少.

import os
import shutil
from datetime import datetime

# maven仓库地址
mvnHome = "/Users/niuli/.m2/repository"
# 删除该日期前的文件以及文件夹
deleteDateBefore = datetime(2017,4,1,0,0,0)


def listPathAndClean(pathContext):
    pathDir = os.listdir(pathContext)
    for filename in pathDir:
        filepath = os.path.join(pathContext, filename)
        currentTimeFile = datetime.fromtimestamp(os.path.getmtime(filepath))

        # 对比时间
        if deleteDateBefore > currentTimeFile:
            print("filePath:"+filepath+"-----updatetime:"+str(currentTimeFile))
            print('delete this')
            if (os.path.isdir(filepath)):
                shutil.rmtree(filepath)
            else:
                os.remove(filepath)
            continue
            
        # 不到期的则深入遍历
        if os.path.isdir(filepath):
            listPathAndClean(filepath)



if __name__ == '__main__':
    print(deleteDateBefore)
    print('start list should delete path')
    listPathAndClean(mvnHome)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java--读写锁的实现原理

    最近做的一个小项目中有这样的需求: 整个项目有一份config.json保存着项目的一些配置,是存储在本地文件的一个资源,并且应用中存在读写(读>>写)更新问题...

    屈定
  • Angular中引入第三方JS库

    最近写http://www.itoolshub.com/的时候用到了日期时间选择器,Angular本身material2只有日期选择器,也不知道为什么官方不提供...

    屈定
  • 设计模式--观察者模式的思考

    观察者模式在业务开发中相当有用的模式,本身挺简单的,理解了一番后就立即对目前手上的项目做了一些优化,该文记录一些自己的理解与应用,希望对你有启发.

    屈定
  • python3通过os模块统计指定目录下

    py3study
  • C++核心准则ES.87:不要在条件语句中增加多余的==或!=

    ES.87: Don't add redundant == or != to conditions

    面向对象思考
  • 源码分析 RocketMQ DLedger(多副本) 之日志复制-下篇

    从上文得知,主节点会主动向从节点传播日志,从节点会通过网络接受到请求数据进行处理,其调用链如图所示:

    丁威
  • Go 2.0发布在即,程序员有太多话要说

    Go语言的开发者正着手准备开发2.0版本,并从以下三个方面发布了初步的设计方案(非官方正式版),以供社区开展讨论:

    新智元
  • 从源码角度分析ScheduleMaster的节点管理流程

    ScheduleMaster是一个开源的分布式任务调度系统,它基于.NET Core 3.1平台构建,支持跨平台多节点部署运行。

    HOHO
  • typescript编写的node应用部署在docker中遇到的问题

    方案1:使用 ts-node 跳过pm2直接运行项目 方案2:使用 tsc 把ts编译为js,再使用pm2运行项目 方案3:重新编译pm2-runtime,增加...

    黒之染
  • 从源码角度分析ScheduleMaster的节点管理流程

    ScheduleMaster是一个开源的分布式任务调度系统,它基于.NET Core 3.1平台构建,支持跨平台多节点部署运行。

    HOHO

扫码关注云+社区

领取腾讯云代金券