一、功能
- 定位Maven仓库的路径
- 查看或删除Jar包未完全下载的相关文件(*.lastUpdated)
- 查看或删除本地仓库目录下的空文件夹
二、脚本源码
@echo>nul 2>nul @author: muyua
cls
@echo off
color 0A
title 清理maven仓库冗余文件
chcp 936>nul 2>nul
set lastUpdatedFileName=*.lastUpdated *m2e-lastUpdated.properties
::默认的maven本地仓库路径
set defaultRepoPath=D:\Software\apache-maven\mavenRepo
::%1获取拖动文件夹的路径
set pathVar=%1
if "%pathVar%" neq "" set defaultRepoPath=%pathVar%
::设置maven本地仓库地址
echo.
echo *--------------------------------------------------------------------------*
echo * 初始化 *
echo *--------------------------------------------------------------------------*
echo * 路径设置提示: *
echo * 1.拖拽maven本地仓库到bat批处理文件上执行脚本,会修改本地仓库默认路径 *
echo * 2.将你的maven本地仓库文件夹拖拽到cmd窗口,可以完成其路径输入 *
echo * 3.输入0,直接使用批处理文件所在的路径 *
echo * 4.使用默认路径,可以回车跳过 *
echo *--------------------------------------------------------------------------*
echo.
echo 默认的maven本地仓库路径:%defaultRepoPath%
echo.
set /p repoPath="请输入你的maven仓库路径:"
if "%repoPath%" equ "" (
set repoPath=%defaultRepoPath%
) else (
if "%repoPath%" equ "0" set repoPath=%~dp0
)
echo 您输入的maven仓库路径:%repoPath%
pause
goto menu
:menu 打印菜单目录
cls
echo maven仓库路径:%repoPath%
echo.
echo *---------------------------------------------*
echo * 清理maven仓库冗余文件 *
echo *---------------------------------------------*
echo * 【0】修改输入的maven仓库路径 *
echo * 【1】查看未完全下载的Jar包文件 *
echo * 【2】查看空文件夹 *
echo * 【3】删除未完全下载的Jar包文件 *
echo * 【4】删除空文件夹 *
echo * 【5】退出程序 *
echo *请选择^<0-5^>进行操作 *
echo *---------------------------------------------*
set /p id=
if /i "%id%"=="0" goto updateRepoPath
if /i "%id%"=="1" goto findLastUpdated
if /i "%id%"=="2" goto findEmptyFolder
if /i "%id%"=="3" goto delLastUpdated
if /i "%id%"=="4" goto delEmptyFolder
if /i "%id%"=="5" exit
pause
goto menu
:updateRepoPath 修改输入的maven仓库路径
cls
set /p repoPathTemp="请输入你的maven仓库路径(回车返回菜单页面,输入0恢复默认路径):"
if "%repoPathTemp%" equ "" goto menu
if "%repoPathTemp%" equ "0" set repoPathTemp=%defaultRepoPath%
set repoPath=%repoPathTemp%
echo 已更新maven仓库路径:%repoPath%
set repoPathTemp=
pause
goto menu
:findLastUpdated 查看未完全下载的Jar包文件
cls
cd /d %repoPath%
for /r %%i in (%lastUpdatedFileName%) do echo %%i
echo OK
pause
goto menu
:findEmptyFolder 查看空文件夹
cls
cd /d %repoPath%
echo 读取空文件夹列表中...
echo 遍历文件需要时间,请稍等...
for /f "delims=" %%i in ('dir /ad/b %repoPath%\*') do (
set xh=0
for /f "delims=" %%a in ('dir /s/b "%repoPath%\%%i"') do if not "%%~nxa"=="" set xh=1
if !xh! == 0 (
echo %%~dpni
)
)
echo OK
pause
goto menu
:delLastUpdated 删除未完全下载的Jar包文件
cls
cd /d %repoPath%
for /r %%i in (%lastUpdatedFileName%) do del %%i && echo 正在删除%%i
echo 删除操作完成,OK
pause
goto menu
:delEmptyFolder 删除空文件夹
cls
cd /d %repoPath%
echo 开始遍历...
for /f "delims=" %%a in ('dir /ad /b /s %repoPath% ^| sort /r') do (
rd "%%~a">nul 2>nul & echo %%~a
)
echo 删除操作完成,OK
pause
goto menu
三、脚本文件
获取链接:clearRedundantMavenRepo.bat
PS:网上没有找到功能比较完善的脚本,自己写来自用。别问我脚本怎么写的,我也是现学现卖,我尽力了!!!