最近开发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库的工具,以前发过,后来做了一些改进和修正。
分享到:
相关推荐
在Maven的日常使用中,`.lastUpdated`文件是一个重要的组成部分,它记录了Maven尝试下载依赖时的一些元数据信息。这些文件位于本地Maven仓库的每个依赖路径下,主要用于跟踪远程仓库中依赖的更新状态。然而,在某些...
Maven库中.lastUpdated文件清除工具 1. 右键.bat文件 2. 编辑 3. 更换仓库地址
需要注意的是,清除`.lastUpdated`文件并不影响已成功下载的库文件,只会影响Maven对这些库的检查行为。如果你确定所有依赖都是完整的,这个操作是安全的。但在某些情况下,如果某些依赖因为特殊原因未能下载,手动...
我们在使用maven的时候,有一些jar包,由于网络的原因下载jar包不完整,本地仓库相关目录下产生了大量lastUpdated结尾的文件,双击运行该脚本,就可以把这些lastUpdated文件清除掉。
描述中提到的“一次清除所有.lastUpdated文件脚本(/mac/linux)”意味着这个脚本将遍历Maven本地仓库路径,找到所有的`.lastUpdated`文件,并删除它们。这一步骤可以帮助开发者刷新Maven仓库,确保它能够正确地检索...
在使用Maven作为项目构建工具时,开发者经常会遇到一个特殊的问题,即在本地Maven仓库中出现了以".lastUpdated"为后缀的文件。这些文件通常是Maven在下载依赖时生成的,用于记录某个依赖包在下载时的状态。尽管这些...
windows下maven仓库清理,替换D:\apache-maven-3.6.0\repository为自己仓库地址即可
MrCleaner是一款基于Java开发的小型实用程序,设计目标是帮助开发者快速有效地清理Maven本地仓库中的.lastUpdate文件。这些文件是Maven在检查远程依赖时生成的,用于记录依赖的最后更新时间。当远程仓库的依赖发生...
1、工具作用:清理本地和远程maven仓库repository中的无效或者垃圾版本文件lastUpdated、_maven.repositories*、_remote.repositories; 2、使用方法1:在本地仓库repository文件夹中右键,打开Git Bahs Here命令...
Maven原版settings.xml配置文件,根据个人需要,可以打开对应注释或替换相关阿里云镜像或远程仓库地址即可使用。
1,可以把里面的properties文件提溜出来,修改成自己的maven仓库的位置 2,运行DelLastUpdated类就可以了,运行完成之后,所有的lastUpdated文件都清除了
1.将bat脚本放到maven仓库的根目录下,双击脚本。 2.即可遍历其他文件夹删除.lastUpdate文件
`.jar`文件是实际的依赖库,`.pom`文件包含了依赖的元数据,`.lastUpdated`文件记录了Maven尝试从远程仓库下载依赖的状态。 总结来说,Maven本地仓库是项目构建过程中不可或缺的一部分,它提供了快速访问和管理依赖...
用于一键清理maven依赖下载失败生成的.lastUpdated文件, 以及解决在无法连接远程仓库情况下导致的本地依赖找不到的批处理脚本 Could not resolve dependencies for project xxx _remote.properties
1. **.lastupdated文件**:当Maven尝试下载一个依赖但未能成功时,它会在本地仓库中创建一个以.lastupdated为后缀的文件。这个文件记录了Maven尝试获取该依赖的最新时间戳。如果网络不稳定或远程仓库出现问题,这些...
一键清理maven依赖下载失败生成的.lastUpdated文件,以及解决在无法连接远程仓库情况下导致的本地依赖找不到的批处理脚本:Could not resolve dependencies for project xxx
在这个“apache-maven-3.9.2.zip”压缩包中,您将找到完整的Maven安装文件,包括所有必要的库和配置文件,预配置了阿里云仓库,以便快速接入并下载依赖。 1. Maven简介:Maven的核心理念是“约定优于配置”,它通过...
maven的set.xml配置文件
settings.xml配置
Maven的setting.xml下载