通过Maven远程下载jar时,总出现下载到.jar.lastUpdated后缀的文件,正常的jar包就下载不了,只能将其删除再次下载,循环操作直到将jar文件下载下来.
方法一、命令行执行命令
Windows:
cd %userprofile%\.m2\repositoryfor /r %i in (*.lastUpdated) do del %i
Linux
find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;
方法二、编辑java,完成删除指定目录下指定后缀名的文件
import java.io.File;import java.io.FilenameFilter;import org.apache.commons.io.filefilter.FileFilterUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * 清除除maven下载jar包时错误下载的.jar.lastUpdated文件 * @author Administrator * */public class DelLastUpdated { //指定要进行清除的根目录 private static final String MAVEN_REPO_PATH = "D:\\maven-repository\\org\\eclipse\\birt\\runtime"; //要清除文件的后缀后 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){ //列出dir目录下的子目录 File[] childDir = dir.listFiles((FilenameFilter) FileFilterUtils.directoryFileFilter()); //列出dir目录下后缀为FIlE_SUFFIX的文件 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."); } } } }}