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