清理Maven倉庫中的垃圾檔案
阿新 • • 發佈:2019-01-09
在使用maven的過程中,由於我們的操作失誤,導致本地maven倉庫可能會建立空資料夾,或者拉取到錯誤的檔案,但是手動清理這些檔案又過於麻煩,於是寫了個工具來清理,程式碼如下:
package util;
import java.io.File;
/**
* @author 畫師十一
* 清除maven倉庫中錯誤檔案或空資料夾
*/
public class CleanMavenRepository {
/**
* root: 倉庫根目錄,此處為本地maven倉庫的絕對路徑
*/
static String root = "E:\\Maven Repository\\repository" ;
public static void main(String[] args) {
File file = new File(root);
File[] files = file.listFiles();
if (files != null && files.length > 0) {
for (File f : files) {
clearRepository(f);
}
}
}
public static boolean clearRepository(File file) {
boolean isHaveJar = false;
File[] files = file.listFiles();
if (files != null && files.length > 0) {
for (File aFile : files) {
// 判斷是否為jar檔案
if (aFile.getName().endsWith(".jar")) {
isHaveJar = true;
}
// 判斷是否為資料夾
if (aFile.isDirectory()) {
// 是資料夾則判斷其內部是否包含jar檔案
boolean isNextHaveJar = clearRepository(aFile);
if (isNextHaveJar) {
isHaveJar = true;
}
}
}
}
if (!isHaveJar) {
System.out.println("Delete The File: " + file.getName());
delete(file);
}
return isHaveJar;
}
/**
* 刪除檔案或資料夾
* @param file 要刪除的檔案或資料夾
*/
public static void delete(File file) {
File[] files = file.listFiles();
if (files != null && files.length > 0) {
for (File aFile : files) {
if (aFile.isDirectory()) {
delete(aFile);
}
aFile.delete();
}
} else {
file.delete();
}
}
}