当前位置: 首页 > news >正文

使用批处理脚本批量删除Maven无效依赖

背景

在开发过程中,我们经常会遇到以下情况:

  • pom.xml文件中错误地指定了依赖的名称。
  • 因为网络问题,某些依赖下载不完全。
  • 依赖版本号错误,导致下载的文件无法使用。

这些情况会导致Maven在本地仓库中留下一些无效的文件,特别是以lastUpdated为后缀的文件。手动查找并删除这些文件既耗时又容易遗漏,因此,使用批处理脚本来自动化这一过程是一个高效的选择。

准备工作
  1. 确定仓库路径:首先,你需要确定你的Maven本地仓库路径。默认情况下,这个路径是%USERPROFILE%\.m2\repository,但也可以在settings.xml文件中自定义。

  2. 创建批处理脚本:使用文本编辑器(如Notepad)创建一个新的批处理脚本文件。

创建批处理脚本
  1. 打开记事本 或者你喜欢的文本编辑器。
  2. 复制以下代码 到编辑器中:
@echo off
rem 设置仓库路径
set REPOSITORY_PATH=%USERPROFILE%\.m2\repository
rem 开始搜索...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (del /s /q %%i
)
rem 搜索并删除完毕
pause
  1. 保存文件,文件名为 cleanLastUpdated.bat,确保选择“所有文件”作为文件类型,以便正确保存为批处理文件。
脚本详解
  • @echo off:关闭命令回显,使得脚本执行时更加整洁。
  • set REPOSITORY_PATH=%USERPROFILE%.m2\repository:设置一个环境变量 REPOSITORY_PATH,这里是你想要搜索和删除文件的根目录。默认情况下,Maven本地仓库位于用户的.m2目录下。
  • for /f “delims=” %%i in ('dir /b /s "%REPOSITORY_PATH%*lastUpdated"') do ( del /s /q %%i )*:
    • for /f "delims=" %%i:循环遍历每个由子命令产生的行,%%i 是循环变量。
    • dir /b /s "%REPOSITORY_PATH%\*lastUpdated*":列出所有文件名中包含 lastUpdated 的文件,无论它们位于 REPOSITORY_PATH 的哪个子目录中。
    • del /s /q %%i:删除找到的每个文件。/s 参数确保删除所有子目录中的文件,而 /q 参数则使删除过程安静进行,不提示确认。
  • pause:脚本执行完毕后暂停,等待用户按键,这有助于查看脚本执行的结果。
安全提示

在运行此脚本前,请务必确保你了解它的功能,并且已经备份了重要的数据。为了安全起见,建议先将 del /s /q %%i 修改为 echo %%i,这样脚本只会打印出将要删除的文件列表,而不会真正删除任何文件。检查输出结果无误后,再恢复 del 命令以执行实际的删除操作。

示例

假设你的Maven本地仓库路径是 D:\APP\maven3.8.8\maven_repository,并且你有一个无效的依赖 spring-boot-starter-abc。你可以将脚本中的 set REPOSITORY_PATH 行修改为:

set REPOSITORY_PATH=D:\APP\maven3.8.8\maven_repository

保存并双击运行 cleanLastUpdated.bat 文件,脚本将会搜索并删除所有以 lastUpdated 为后缀的文件。

扩展功能

如果你希望脚本能够删除更多类型的无效文件,例如 _remote.repositories 文件,可以将脚本中的搜索条件扩展为:

for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*" "%REPOSITORY_PATH%\*_remote.repositories*"') do (del /s /q %%i
)
结语

通过上述步骤,你可以轻松地使用批处理脚本来批量删除Maven本地仓库中的无效依赖。

相关文章:

使用批处理脚本批量删除Maven无效依赖

背景 在开发过程中,我们经常会遇到以下情况: 在pom.xml文件中错误地指定了依赖的名称。因为网络问题,某些依赖下载不完全。依赖版本号错误,导致下载的文件无法使用。 这些情况会导致Maven在本地仓库中留下一些无效的文件&#…...

腾讯cos对象存储,下行流量费贵,是否可以加入服务器减少费用,架构如何设计

腾讯云COS(Cloud Object Storage)对象存储服务提供了一种高效、安全、低成本的方式存储大量数据。然而,当涉及到外网下行流量时,确实会产生一定的费用,这可能会增加整体的成本。为了减少这些费用,可以通过以…...

【SAP】关于权限的继承

关于权限的父role和子role的权限继承,既可以 从子role主动去父role那里“取”。从父role“推”到子role 我自己之前一直用的是方法1,但由于子role很多,一个一个手工维护花了不少时间。 后来得知有方法2,特此测试。 我准备了父R…...

SpringBoot技术下的共享汽车运营平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理共享汽车管理系统的相关信息成为必然。开发…...

SwiftUI开发教程系列 - 第7章:数据流和状态管理

SwiftUI 的核心优势之一在于其声明式的数据绑定和状态管理系统,使得在多视图间传递和更新数据变得更加直观和高效。在本章中,我们将讨论如何使用 ObservedObject、EnvironmentObject、StateObject 等属性包装器进行复杂的数据管理,确保应用的…...

Ubuntu系统安装NVIDIA驱动、CUDA、PyTorch等GPU深度学习环境

学习目标: 在Ubuntu系统上安装CUDA、PyTorch等GPU深度学习环境,主要目标是为深入研究深度学习和深度强化学习提供高效的计算支持。通过构建GPU环境,计划掌握深度学习的基本概念和算法应用,提高模型训练效率,特别是在复…...

电子学会2024年3月青少年软件编程(图形化)等级考试试卷(三级)真题,含答案解析

我们今天分享的资料是:电子学会2024年3月青少年软件编程(图形化)等级考试试卷(三级)真题,含答案解析 电子学会 2024 年 3 月青少年软件编程(图形化)等级三级考试的主要考点包括但不限于以下内容: 理解变量的概念:能够新建变量,知道如何在舞台区显示或隐藏变量,理解…...

初学者指南:用例图——开启您的软件工程之旅

目录 背景: 基本组成: 关联(Assciation): 包含(Include): 扩展(Extend): 泛化(Inheritance): 完整银行…...

二叉树遍历/算法数据结构

六、树 6.1遍历算法 6.1.1前中后序 在做递归时,最重要是三步骤 确定递归函数的返回值和参数 确定终止条件 确定单层递归的逻辑 伪代码 void travel(cur, vec) {if (cur null) {return ;}vec.push(cur->middle, vec); // 递归中节点vec.push(cur->left, …...

C#字符串的不可变性:内存管理与线程安全的优势分析

在C#编程中,字符串(String)被设计为不可变对象,这意味着一旦创建字符串对象后,其内容是不可更改的。这种设计通过在每次修改字符串时创建一个新实例,而不是直接更改原有字符串实例,来实现不可变…...

【杂记】之语法学习第四课手写函数与结构体

函数 如同我们数学中学的 f(x) ax b ,函数就是把一个东西丢进去,然后进行类似的操作变化,最终得到的可以是一个数,也可能什么都得不到而只是进行一项操作。 如sqrt() , max() 和 swap() 这样的其实都是函数&#x…...

细说STM32单片机USART中断收发RTC实时时间并改善其鲁棒性的另一种方法

目录 一、工程目的 1、目标 2、通讯协议及应对错误指令的处理目标 二、工程设置 三、程序改进 四、下载与调试 1、合规的指令 2、不以#开头,但以;结束,长度不限 3、以#开头,不以;结束,也不包含;,长…...

python使用turtle画图快速入门,轻松完成作业练习

turtle介绍 turtle是一个绘图库,可以通过编程进行绘图。其模拟了一个乌龟在屏幕上的运动过程。该库通常用于给青少年学习编程,当然,也可以使用其进行作图。 在一些学校中,可能在python学习的课程中,要求完成turtle绘…...

【C++】新手入门指南

> 🍃 本系列为初阶C的内容,如果感兴趣,欢迎订阅🚩 > 🎊个人主页:[小编的个人主页])小编的个人主页 > 🎀 🎉欢迎大家点赞👍收藏⭐文章 > ✌️ 🤞 &#x1…...

C++使用开源ConcurrentQueue库处理自定义业务数据类

ConcurrentQueue开源库介绍 ConcurrentQueue是一个高性能的、线程安全的并发队列库。它旨在提供高效、无锁的数据结构,适用于多线程环境中的数据交换。concurrentqueue 支持多个生产者和多个消费者,并且提供了多种配置选项来优化性能和内存使用。 Conc…...

在vue3的vite网络请求报错 [vite] http proxy error:

在开发的过程中 代理proxy报错: [vite] http proxy error: /ranking/hostRank?dateType1 Error: connect ETIMEDOUT 43.xxx.xxx.xxx:443 网络请求是http的: // vite.config.ts import { Agent } from node:http;server: {host: 0.0.0.0,port: port,open: true,https: false,…...

ElasticSearch 简单的查询。查询存在该字段的资源,更新,统计

1.查询存在该字段的数据 {"query": {"bool": {"must": [{"exists": { "field": "chainCode"}}],"must_not": {"exists": {"field": "isDelete"}}}} } 备注&#xff1a…...

FOFA使用教程之从零到精通

FOFA使用教程之从零到精通 前言一、关于网络资产测绘的概念1、啥是网络空间资产测绘2、啥是互联网资产二、FOFA的简要介绍1、FOFA地址是啥?2、关于FOFA的简要介绍三、FOFA精讲1、运算符规则详解① 关于 = 号的使用说明② 关于 == 号的使用说明③ 关于 && 号的使用说明…...

【提高篇】3.2 GPIO(二,基本结构)

目录 一,GPIO的基本结构 二,保护二极管 三,上拉、下拉电阻 四,施密特触发器 五,P-MOS 管和 N-MOS 管 P-MOS管和N-MOS管的区别 六,片上外设 七,IDR,ODR,BSRR寄存器 7.1 IDR(Input Data Register) 7.2 ODR(Output Data Register) 7.3 BSRR(Bit Set/Rese…...

UE hard/soft reference| DDX DDY | Unity pcg color

目录 1.虚幻引擎性能优化 (附0跳转Unity对应机制) hard reference and soft reference 1. 硬引用(Hard Reference) 2. 软引用(Soft Reference) 3. 使用原则 2.空间梯度转法线 DDX DDY节点 ​编辑 …...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

SpringTask-03.入门案例

一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘&#xf…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...