Spring Boot项目导入Maven遇Non-resolvable parent POM错误求助
我是Java新手开发者,通过Spring Initializr生成项目后尝试加载构建,在导入Maven项目时遇到错误。
项目的pom.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.1</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>dev.example.restapi</groupId> <artifactId>dev.restapi.proj</artifactId> <version>0.0.1-SNAPSHOT</version> <name>dev.restapi.proj</name> <description>Demo project for Spring Boot</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
尝试过mvn clean install、mvn -U以及IDE中的Maven Update操作,问题仍未解决,收到的错误信息为:
[ERROR] Non-resolvable parent POM for dev.example.restapi:dev.restapi.proj:0.0.1-SNAPSHOT: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:3.0.1 from/to central (https://repo.maven.apache.org/maven2): transfer failed for https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.0.1/spring-boot-starter-parent-3.0.1.pom and 'parent.relativePath' points at no local POM @ line 5, column 10: Connection reset by peer
这个错误的核心是Maven无法从中央仓库下载Spring Boot父POM文件,大概率是网络连接异常或本地仓库缓存问题,按以下步骤逐一排查:
验证网络连通性
直接在浏览器打开https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.0.1/spring-boot-starter-parent-3.0.1.pom,如果无法访问,说明网络受限(比如公司内网拦截、代理未配置),需要调整网络或切换国内镜像源。配置国内Maven镜像
找到本地Maven安装目录下的conf/settings.xml(或用户目录下的.m2/settings.xml),添加阿里云镜像:<mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <url>https://maven.aliyun.com/repository/public</url> </mirror> </mirrors>保存后执行
mvn clean install -U重新构建。清理本地Maven缓存
删除本地仓库(默认路径为用户目录.m2/repository)中对应父POM的缓存文件夹:org/springframework/boot/spring-boot-starter-parent/3.0.1,然后重新运行构建命令。检查IDE的Maven配置
确认IDE中使用的是你配置好镜像的Maven环境,有些IDE自带的默认Maven可能未配置国内源,需要手动指定Maven安装路径和对应的settings.xml文件。临时本地指定父POM路径(可选)
如果网络问题暂时无法解决,可手动下载spring-boot-starter-parent-3.0.1.pom文件,修改pom.xml中的<relativePath>指向该文件的本地路径,示例:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.1</version> <relativePath>/Users/xxx/Downloads/spring-boot-starter-parent-3.0.1.pom</relativePath> </parent>此方法仅作为临时 workaround,不建议长期使用。
内容的提问来源于stack exchange,提问作者sara

