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();
          }
        }
      }
    });

  }
}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기