Maven本地缓存清理小工具的实现

网友投稿 270 2023-08-01

Maven本地缓存清理小工具的实现

有个时候多人多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 coordinathttp://eJson="{"

+ "\"top.xbynet.xxx\":\"\""

+ "}";

Map

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) {

http:// 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();

}

}

}

});

}

}

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) {

http:// 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();

}

}

}

});

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据接口技术:解密数据传输的关键
下一篇:Spring Boot与Docker部署实践
相关文章

 发表评论

暂时没有评论,来抢沙发吧~