Maven本地缓存清理小工具的实现
程序员文章站
2023-12-16 22:01:58
有个时候多人多team协作开发过程中,会存在临时修改的二方包,同样版本需要重新拉取的情况。发现大部分人包括自己长久以来也是采用最原始的方法,一层层找到对应的目录删除对应的文...
有个时候多人多team协作开发过程中,会存在临时修改的二方包,同样版本需要重新拉取的情况。发现大部分人包括自己长久以来也是采用最原始的方法,一层层找到对应的目录删除对应的文件。某天实在是受不了了,写了个小工具分享下,小代码解决小问题。
外部依赖: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(); } } } }); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。