Maven 로컬 캐시 정리 도구 구현
외부 의존: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();
}
}
}
});
}
}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Nexus에서 자체 Maven 리포지토리를 구축하고 sbt에서 사용Scala 현장에서 프로젝트 종속성을 폐쇄된 Maven 리포지토리로 관리할 수 없는가 하는 이야기가 오르기 때문에, 일단 로컬상에서 간이로 검증한 내용을 비망으로 남깁니다. 프로덕션 용 리포지토리 서버는 별도로 현장...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.