1、maven项目依赖的jar包,在本地仓库有,但是pom文件却报错找不到jar包。
window10
Maven3.8.3
jdk1.8
Intellj IDEA2021.2.2
maven项目依赖的jar包,在本地仓库有,但是pom文件却报错找不到jar包。
检查项目的maven配置是否正确:
maven版本、setting.xml文件、repository目录
经检查IDEA内的项目Maven配置正确。
原因是:
maven项目的,pom.xml中依赖的jar包全都默认先去你电脑本地仓库去找。
可能是由于仓库是从另一个地方拷贝过来(如外网拷贝到内网),仓库里存在多版本临时文件信息,或者是因为网络问题,导致jar描述不全等。
解决方式:
在本地仓库目录下,删除生成的多余的文件,然后重新maven-》reimport:
_remote.repositories
m2e-lastUpdated.properties
*.lastUpdated
删除方式参考:
指定本地仓库路径,批量删除指定后缀的文件。工具类如下:
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class FileUtils {
private static List<File> fileList = new ArrayList<>();
/**
* 根据扩展名,过滤文件
*
* @param file
* @param extensions
* @param isDeep
* @return
*/
public static Collection<File> listFiles(File file, String[] extensions, boolean isDeep) {
if (!file.exists()) {
System.out.println("路径不存在:" + file);
}
listFiles(file, extensions);
return fileList;
}
/**
* 根据文件扩展名列表,过滤出指定扩展名的所有文件(包含子目录下的)
*
* @param file
* @param extensions
*/
private static void listFiles(File file, String[] extensions) {
File[] fs = file.listFiles();
for (File f : fs) {
if (f.isDirectory()) {
listFiles(f, extensions);
}
if (f.isFile()) {
for (String extension : extensions) {
if (f.toString().endsWith(extension)) {
fileList.add(f);
}
}
}
}
}
}
import java.io.File;
import java.util.Collection;
public class MavenDeleteVersion {
public static void main(String[] args) {
//本地仓库地址
String repoPath = "Z:\\repository";
//需要删除的文件后缀
String[] extensions = new String[]{
"lastUpdated",
"properties",
"repositories"
};
//获取所有文件进行删除
Collection<File> listFiles = FileUtils.listFiles(new File(repoPath), extensions, true);
for (File file : listFiles) {
System.out.println(file);
file.delete();
}
}
}
执行后更新项目的maven依赖包:
项目右键-》maven-》reimport,更新后即可。
2、IDEA运行项目类文件报错:java: 错误: 无效的源发行版:16
IDEA项目环境java版本配置不正确:
项目右键-》Open Module Settings-》Project-》sdk版本和language level设置成一致版本1.8
参考链接:
maven引入依赖时,识别不到本地仓库jar包问题【补充版】_尘言九的博客-CSDN博客