【原创】Maven库中.lastUpdated文件自动清除工具

3 篇文章 0 订阅
3 篇文章 0 订阅

最近开发noCloud过程中,在更新maven库时,如果网络问不定或者是一些自己手动安装到本地maven库的jar包,在中心库找不到对应的jar,会生成一些.lastUpdated文件,会导致m2e工具无法找到依赖的jar包,从而提示编译错误。

对于该问题,我也没有找到很好的解决方案,只能手动删除一下lastUpdated文件。文件多时十分繁琐。网上看到别人的解决方案也有利用命令行命令,匹配文件扩展名批量删除的。命令行不会,于是就写了几行代码用于删除.lastUpdated文件。

如有其他直接的解决方案,望不吝赐教,写代码实属无奈之举。

 

public class DelLastUpdated {

	private static PropertyHelper propHelper = new PropertyHelper("config");
	private static final String KEY_MAVEN_REPO = "maven.repo";
	private static final String MAVEN_REPO_PATH = propHelper
			.getValue(KEY_MAVEN_REPO);
	private static final String FILE_SUFFIX = "lastUpdated";
	private static final Log _log = LogFactory.getLog(DelLastUpdated.class);

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		File mavenRep = new File(MAVEN_REPO_PATH);
		if (!mavenRep.exists()) {
			_log.warn("Maven repos is not exist.");
			return;
		}
		File[] files = mavenRep.listFiles((FilenameFilter) FileFilterUtils
				.directoryFileFilter());
		delFileRecr(files,null);
		_log.info("Clean lastUpdated files finished.");
	}

	private static void delFileRecr(File[] dirs, File[] files) {
		if (dirs != null && dirs.length > 0) {
			for(File dir: dirs){
				File[] childDir = dir.listFiles((FilenameFilter) FileFilterUtils
				.directoryFileFilter());
				File[] childFiles = dir.listFiles((FilenameFilter) FileFilterUtils
				.suffixFileFilter(FILE_SUFFIX));
				delFileRecr(childDir,childFiles);
			}
		}
		if(files!=null&&files.length>0){
			for(File file: files){
				if(file.delete()){
					_log.info("File: ["+file.getName()+"] has been deleted.");
				}
			}
		}
	}

}

 配置文件:config.properties

maven.repo=D:\\.m2\\repository

 源码下载地址:

 

 svn	https://svn.code.sf.net/p/maventools/code/trunk/maven-tools

 工程里还包括一个批量安装jar包到本地maven库的工具,以前发过,后来做了一些改进和修正。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
删除maven库中以.lastupdated结尾的文件可以通过以下步骤实现: 第一步,定位到maven仓库的目录。根据不同的操作系统,maven仓库一般位于用户目录下的.m2文件夹中。可以通过运行命令`echo %USERPROFILE%`(在Windows系统中)或`echo $HOME`(在Linux或Mac系统中)来获取用户目录。 第二步,进入.m2文件夹,找到repository文件夹。这个文件夹就是maven仓库的存储位置。 第三步,使用命令行工具(如Windows下的命令提示符或Linux/Mac下的终端)进入repository文件夹。 第四步,运行以下命令来删除以.lastupdated结尾的文件: `find . -type f -name "*.lastupdated" -exec rm -rf {} +` 以上命令将递归查找repository文件夹中以.lastupdated结尾的所有文件,并使用rm命令将其删除删除maven仓库下的所有_remote.repositor文件可以通过以下步骤实现: 第一步,同样需要找到maven仓库的目录,即上述提到的.m2文件夹。 第二步,进入.m2文件夹,找到repository文件夹。 第三步,在repository文件夹中,删除所有名字以_remote.repositor结尾的文件。可以通过运行以下命令实现: `find . -type f -name "*_remote.repositor" -exec rm -rf {} +` 以上命令将递归查找repository文件夹中所有名字以_remote.repositor结尾的文件,并使用rm命令将其删除。 这样,我们就可以通过以上步骤来删除maven库中所有以.lastupdated结尾的文件和所有_remote.repositor文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值