1. 程式人生 > >Maven庫中.lastUpdated檔案自動清除工具

Maven庫中.lastUpdated檔案自動清除工具

最近開發過程中,在更新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 

原始碼下載地址:

工程裡還包括一個批量安裝jar包到本地maven庫的工具。以後再另外介紹。