Maven本地緩存清理小工具的實現(xiàn)
有個時候多人多team協(xié)作開發(fā)過程中,會存在臨時修改的二方包,同樣版本需要重新拉取的情況。發(fā)現(xiàn)大部分人包括自己長久以來也是采用最原始的方法,一層層找到對應(yīng)的目錄刪除對應(yīng)的文件。某天實在是受不了了,寫了個小工具分享下,小代碼解決小問題。
外部依賴:fastjson,commons-io,commons-lang3,不要嘲笑,有工具干嘛不用呢,非得造輪子嗎。
import com.alibaba.fastjson.JSON; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; /** * @author tjw */ public class MavenLocalRepoCleaner { /** * coordinateJson * { * "groupId1":"artifactId1:version1,artifactId2:version2...", * "groupId2":"artifactId:version,..." * } */ public static void main(String[] args) { String coordinateJson="{" + "\"top.xbynet.xxx\":\"\"" + "}"; Map<String,String> coordinateMap=JSON.parseObject(coordinateJson,HashMap.class); Path m2Repo= Paths.get(System.getProperty("user.home"),".m2","repository"); coordinateMap.entrySet().stream().forEach(v->{ String groupId=v.getKey(); groupId = groupId.replace('.', File.separatorChar); if(StringUtils.isBlank(v.getValue())){ Path dir = Paths.get(m2Repo.toString(), groupId); try { FileUtils.deleteDirectory(dir.toFile()); } catch (IOException e) { e.printStackTrace(); } }else { String[] artfactIdVers = v.getValue().split(","); for (String str : artfactIdVers) { String ver = ""; if (str.contains(":")) { ver = str.split(":")[1]; } String artfactId = str.split(":")[0]; Path dir = Paths.get(m2Repo.toString(), groupId, artfactId, ver); try { FileUtils.deleteDirectory(dir.toFile()); } catch (IOException e) { e.printStackTrace(); } } } }); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
servlet3新特性_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了servlet3新特性的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07Struts2通過自定義標(biāo)簽實現(xiàn)權(quán)限控制的方法
這篇文章主要介紹了Struts2通過自定義標(biāo)簽實現(xiàn)權(quán)限控制的方法,介紹了定義Struts2的自定義標(biāo)簽的三個步驟以及詳細(xì)解釋,需要的朋友可以參考下。2017-09-09java 數(shù)據(jù)結(jié)構(gòu)并查集詳解
并查集是一種用來管理元素分組情況的數(shù)據(jù)結(jié)構(gòu)。并查集可以高效地進(jìn)行如下操作。本文將通過Java實現(xiàn)并查集,感興趣的小伙伴可以了解一下2022-03-03Java使用自定義注解實現(xiàn)為事件源綁定事件監(jiān)聽器操作示例
這篇文章主要介紹了Java使用自定義注解實現(xiàn)為事件源綁定事件監(jiān)聽器操作,結(jié)合實例形式分析了java自定義注解、注解處理、事件監(jiān)聽與響應(yīng)等相關(guān)操作技巧,需要的朋友可以參考下2019-10-10Java NIO Selector用法詳解【含多人聊天室實例】
這篇文章主要介紹了Java NIO Selector用法,結(jié)合實例形式分析了Java NIO Selector基本功能、原理與使用方法,并結(jié)合了多人聊天室實例加以詳細(xì)說明,需要的朋友可以參考下2019-11-11jdbc+jsp實現(xiàn)簡單員工管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了jdbc+jsp實現(xiàn)簡單員工管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02