删除m2文件夹后触发org.eclipse.aether.transfer.ChecksumFailureException求助
问题:清理M2仓库后Spring Boot应用依赖校验失败
问题详情
清理本地M2仓库后,原本正常运行的Spring Boot应用抛出校验和错误,尝试重新清理M2仓库、删除分支重新克隆项目后问题仍存在。
错误日志
[WARNING] Checksum validation failed, expected <!doctype but is 74a0061f89255bc52ee21eb07944fe42518a97ad from Spring plugin alt repo for https://repo.spring.io/ui/native/plugins-release/org/springframework/boot/spring-boot-starter-parent/2.7.0/spring-boot-starter-parent-2.7.0.pom [WARNING] Could not validate integrity of download from https://repo.spring.io/ui/native/plugins-release/org/springframework/boot/spring-boot-starter-parent/2.7.0/spring-boot-starter-parent-2.7.0.pom org.eclipse.aether.transfer.ChecksumFailureException: Checksum validation failed, expected <!doctype but is 74a0061f89255bc52ee21eb07944fe42518a97ad at org.eclipse.aether.connector.basic.ChecksumValidator.validateExternalChecksums (ChecksumValidator.java:174) at org.eclipse.aether.connector.basic.ChecksumValidator.validate (ChecksumValidator.java:103) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:460) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:364) at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75) at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute (BasicRepositoryConnector.java:628) at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get (BasicRepositoryConnector.java:262) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:513) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:401) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:229) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:207) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact (DefaultRepositorySystem.java:262) at org.apache.maven.project.ProjectModelResolver.resolveModel (ProjectModelResolver.java:192) at org.apache.maven.project.ProjectModelResolver.resolveModel (ProjectModelResolver.java:242) at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally (DefaultModelBuilder.java:1070) at org.apache.maven.model.building.DefaultModelBuilder.readParent (DefaultModelBuilder.java:846) at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:337) at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:448) at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:414) at org.apache.maven.project.DefaultProjectBuilder.build (DefaultProjectBuilder.java:377) at org.apache.maven.graph.DefaultGraphBuilder.collectProjects (DefaultGraphBuilder.java:414) at org.apache.maven.graph.DefaultGraphBuilder.getProjectsForMavenReactor (DefaultGraphBuilder.java:405) at org.apache.maven.graph.DefaultGraphBuilder.build (DefaultGraphBuilder.java:82)
POM片段
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.0</version> <relativePath/> <!-- lookup parent from repository --> </parent>
解决方案
核心原因
错误日志中的仓库地址https://repo.spring.io/ui/native/plugins-release是Spring仓库的网页UI地址,不是Maven可直接拉取依赖的仓库地址,导致下载的不是POM文件而是网页内容(以<!doctype开头),从而触发校验和失败。
修复步骤
修正Maven仓库配置:
- 打开全局Maven配置文件
settings.xml(通常在~/.m2/settings.xml或Maven安装目录下的conf/settings.xml),或项目根目录下的pom.xml。 - 找到指向
https://repo.spring.io/ui/native/plugins-release的仓库配置,替换为正确的Spring发布仓库地址:<repository> <id>spring-release</id> <url>https://repo.spring.io/release</url> </repository> - 若无需单独配置Spring仓库,可直接依赖Maven中央仓库,删除错误的仓库配置即可。
- 打开全局Maven配置文件
强制更新依赖:
执行Maven命令强制更新依赖并重新构建:mvn clean install -U清理残留错误文件:
若M2仓库中仍有损坏的缓存文件,手动删除~/.m2/repository/org/springframework/boot/spring-boot-starter-parent/2.7.0目录,再重新执行构建命令。
内容的提问来源于stack exchange,提问作者Varun
相关产品推荐
相关产品推荐

