Maven本地緩存清理小工具的實(shí)現(xiàn)
有個(gè)時(shí)候多人多team協(xié)作開發(fā)過程中,會存在臨時(shí)修改的二方包,同樣版本需要重新拉取的情況。發(fā)現(xiàn)大部分人包括自己長久以來也是采用最原始的方法,一層層找到對應(yīng)的目錄刪除對應(yīng)的文件。某天實(shí)在是受不了了,寫了個(gè)小工具分享下,小代碼解決小問題。
外部依賴: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)文章
SpringBoot集成分頁插件PageHelper的配置和使用過程
這篇文章主要介紹了SpringBoot集成分頁插件PageHelper的配置和使用過程,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
詳解Java消息隊(duì)列-Spring整合ActiveMq
本篇文章主要介紹了詳解Java消息隊(duì)列-Spring整合ActiveMq ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
詳解如何在Spring?Security中自定義權(quán)限表達(dá)式
這篇文章主要和大家詳細(xì)介紹一下如何在Spring?Security中自定義權(quán)限表達(dá)式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-07-07
Spring整合redis(jedis)實(shí)現(xiàn)Session共享的過程
這篇文章主要介紹了Spring整合redis(jedis)實(shí)現(xiàn)Session共享,需要的朋友可以參考下2018-06-06
Spring?@Transactional事務(wù)失效的原因分析
一個(gè)程序中不可能沒有事務(wù),Spring中,事務(wù)的實(shí)現(xiàn)方式分為兩種:編程式事務(wù)和聲明式事務(wù)。日常項(xiàng)目中,我們都會使用聲明式事務(wù)?@Transactional來實(shí)現(xiàn)事務(wù),本文來和大家聊聊什么情況會導(dǎo)致@Transactional事務(wù)失效2022-09-09
Java框架學(xué)習(xí)Struts2復(fù)選框?qū)嵗a
這篇文章主要介紹了Java框架學(xué)習(xí)Struts2復(fù)選框?qū)嵗a,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02

