Idea项目有拉取代码后无法启动
Idea 拉取别人的项目后,如果出现一些字节码导致的无法启动问题,需要删除idea工程里的一些配置文件: *.iml,.idea等
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Optional;
import java.util.regex.Pattern;
@Slf4j
public class IdeaTest {
public static void main(String[] args) {
deleteFile(new File("C:\\Users\\zhou\\Documents\\xiaozu"));
}
private static void deleteFile(File file) {
final String fileName = file.getName();
final ArrayList<String> deathList = new ArrayList<>();
deathList.add("^.*\\.iml$");
deathList.add("^\\.project$");
deathList.add("^\\.classpath$");
deathList.add("^\\.idea$");
deathList.add("^\\.settings$");
for (String regex : deathList) {
final boolean find = Pattern.compile(regex).matcher(fileName).find();
if (find) {
deleteFileOrDirectory(file);
log.info("删除了[{}]", file.getAbsolutePath());
return;
}
}
if (file.isDirectory()) {
final File[] files = Optional.ofNullable(file.listFiles()).orElse(new File[0]);
for (File childFile : files) {
deleteFile(childFile);
}
}
}
/**
* 删除文件夹及其内容
*
* @param file
*/
@SneakyThrows
public static void deleteFileOrDirectory(File file) {
if (file.exists()) {
final File[] childFiles = Optional.ofNullable(file.listFiles()).orElseGet(() -> new File[0]);
for (File childFile : childFiles) {
if (childFile.isFile()) {
Files.delete(childFile.toPath());
} else {
deleteFileOrDirectory(childFile);
}
}
Files.delete(file.toPath());
}
}
}