欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Maven本地緩存清理小工具的實現(xiàn)

 更新時間:2018年05月30日 10:35:01   作者:xbynet  
這篇文章主要介紹了Maven本地緩存清理小工具的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

有個時候多人多team協(xié)作開發(fā)過程中,會存在臨時修改的二方包,同樣版本需要重新拉取的情況。發(fā)現(xiàn)大部分人包括自己長久以來也是采用最原始的方法,一層層找到對應(yīng)的目錄刪除對應(yīng)的文件。某天實在是受不了了,寫了個小工具分享下,小代碼解決小問題。

外部依賴: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)文章

  • servlet3新特性_動力節(jié)點Java學(xué)院整理

    servlet3新特性_動力節(jié)點Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了servlet3新特性的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Struts2通過自定義標(biāo)簽實現(xiàn)權(quán)限控制的方法

    Struts2通過自定義標(biāo)簽實現(xiàn)權(quán)限控制的方法

    這篇文章主要介紹了Struts2通過自定義標(biāo)簽實現(xiàn)權(quán)限控制的方法,介紹了定義Struts2的自定義標(biāo)簽的三個步驟以及詳細(xì)解釋,需要的朋友可以參考下。
    2017-09-09
  • java 數(shù)據(jù)結(jié)構(gòu)并查集詳解

    java 數(shù)據(jù)結(jié)構(gòu)并查集詳解

    并查集是一種用來管理元素分組情況的數(shù)據(jù)結(jié)構(gòu)。并查集可以高效地進(jìn)行如下操作。本文將通過Java實現(xiàn)并查集,感興趣的小伙伴可以了解一下
    2022-03-03
  • Java使用自定義注解實現(xiàn)為事件源綁定事件監(jiān)聽器操作示例

    Java使用自定義注解實現(xiàn)為事件源綁定事件監(jiān)聽器操作示例

    這篇文章主要介紹了Java使用自定義注解實現(xiàn)為事件源綁定事件監(jiān)聽器操作,結(jié)合實例形式分析了java自定義注解、注解處理、事件監(jiān)聽與響應(yīng)等相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • Java NIO Selector用法詳解【含多人聊天室實例】

    Java NIO Selector用法詳解【含多人聊天室實例】

    這篇文章主要介紹了Java NIO Selector用法,結(jié)合實例形式分析了Java NIO Selector基本功能、原理與使用方法,并結(jié)合了多人聊天室實例加以詳細(xì)說明,需要的朋友可以參考下
    2019-11-11
  • 幾種常見mybatis分頁實現(xiàn)方式

    幾種常見mybatis分頁實現(xiàn)方式

    這篇文章主要介紹了幾種常見mybatis分頁實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java測試題 實現(xiàn)一個注冊功能過程解析

    Java測試題 實現(xiàn)一個注冊功能過程解析

    這篇文章主要介紹了Java測試題 實現(xiàn)一個注冊功能過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Java多線程深入理解

    Java多線程深入理解

    這篇文章主要介紹了java多線程編程實例,分享了幾則多線程的實例代碼,具有一定參考價值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下
    2021-07-07
  • MyBatis-Plus中通用枚舉的實現(xiàn)

    MyBatis-Plus中通用枚舉的實現(xiàn)

    表中的有些字段值是固定的此時我們可以使用MyBatis-Plus的通用枚舉來實現(xiàn),本文主要介紹了MyBatis-Plus中通用枚舉的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • jdbc+jsp實現(xiàn)簡單員工管理系統(tǒng)

    jdbc+jsp實現(xiàn)簡單員工管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了jdbc+jsp實現(xiàn)簡單員工管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評論