Maven库中.lastUpdated文件自动清除工具

转载于:http://mushiqianmeng.blog.51cto.com/3970029/720448

 

 

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

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

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

 

  
  
  1. public class DelLastUpdated { 
  2.  
  3.     private static PropertyHelper propHelper = new PropertyHelper("config"); 
  4.     private static final String KEY_MAVEN_REPO = "maven.repo"
  5.     private static final String MAVEN_REPO_PATH = propHelper 
  6.             .getValue(KEY_MAVEN_REPO); 
  7.     private static final String FILE_SUFFIX = "lastUpdated"
  8.     private static final Log _log = LogFactory.getLog(DelLastUpdated.class); 
  9.  
  10.     /** 
  11.      * @param args 
  12.      */ 
  13.     public static void main(String[] args) { 
  14.         File mavenRep = new File(MAVEN_REPO_PATH); 
  15.         if (!mavenRep.exists()) { 
  16.             _log.warn("Maven repos is not exist."); 
  17.             return
  18.         } 
  19.         File[] files = mavenRep.listFiles((FilenameFilter) FileFilterUtils 
  20.                 .directoryFileFilter()); 
  21.         delFileRecr(files,null); 
  22.         _log.info("Clean lastUpdated files finished."); 
  23.     } 
  24.  
  25.     private static void delFileRecr(File[] dirs, File[] files) { 
  26.         if (dirs != null && dirs.length > 0) { 
  27.             for(File dir: dirs){ 
  28.                 File[] childDir = dir.listFiles((FilenameFilter) FileFilterUtils 
  29.                 .directoryFileFilter()); 
  30.                 File[] childFiles = dir.listFiles((FilenameFilter) FileFilterUtils 
  31.                 .suffixFileFilter(FILE_SUFFIX)); 
  32.                 delFileRecr(childDir,childFiles); 
  33.             } 
  34.         } 
  35.         if(files!=null&&files.length>0){ 
  36.             for(File file: files){ 
  37.                 if(file.delete()){ 
  38.                     _log.info("File: ["+file.getName()+"] has been deleted."); 
  39.                 } 
  40.             } 
  41.         } 
  42.     } 
  43.  

配置文件:config.properties

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

源码下载地址:

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

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

本文出自 “苦逼coder” 博客,请务必保留此出处http://mushiqianmeng.blog.51cto.com/3970029/720448

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值