清理maven下载错误的包powershell脚本

cleanInvalidMavenPkg.ps1


#[CmdletBinding()]
#Param(
#    [string]$reposDir
#)
#

if($args.Length -eq 0)
{
    Write-Host "maven本地仓库目录未指定"
    exit;
}

$reposDir=[string]$args[0]
if([string]::IsNullOrWhiteSpace($reposDir))
{
    Write-Host "maven本地仓库目录未指定"
    exit;
}

if(!(Test-Path $reposDir))
{
    Write-Host "目录$($reposDir)不存在"
    exit;
}

if(-not $reposDir.EndsWith("/") -and -not $reposDir.EndsWith("\"))
{
    $reposDir = $reposDir + "\"
}

#下载日期
$minDate = New-Object System.DateTime([System.DateTime]::Now.Year,[System.DateTime]::Now.Month,[System.DateTime]::Now.Day)
# 小于2kb
$minSize = 2 -shl 10

function checkDir
{
    Param(
        [System.IO.DirectoryInfo]$dir
    )

    $flag = $false
    foreach($jarFile in Get-ChildItem -File -Path $dir.FullName -Filter *.jar)
    {
        #Write-Host ("{0}时间{1}大小:{2}" -f $jarFile.FullName.Replace($reposDir,""),$jarFile.LastWriteTime,$jarFile.Length)
        if($jarFile.LastWriteTime -gt $minDate -and $jarFile.Length -lt $minSize)
        {
            #Write-Host ("{0}时间{1}大小:{2}" -f $jarFile.FullName.Replace($reposDir,""),$jarFile.LastWriteTime,$jarFile.Length)
            $flag=$true
            break
        }
    }

    if($flag)
    {
        Write-Host $dir.FullName.Replace($reposDir,"")
        $dir.Delete($true)
    }
}

Get-ChildItem -Directory -Path $reposDir -Recurse | ForEach-Object {
    checkDir $_
}

处理原理是根据jar保存时间和大小判断包无效的;然后删除jar文件目录(包对应版本目录),项目中reimport即可。

powershell中2 -shl 10等价于 2<<10=2048 2kb

已测试脚本可行;

运行:

1.设置运行级别

set-executionpolicy RemoteSigned -Scope CurrentUser

2.进入命令行,输入powershell,进入交互模式

输入./cleanInvalidMavenPkg.ps1 "E:\repository"

我本地配置的maven仓库地址是"E:\repository"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪耀星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值