背景
虽然标题貌似跟证书PKIX有关,实则没有半毛钱关系。昨晚上整理电脑的文件夹,将项目文件夹移动了位置,今天上午开完公司站会就开始车祸现场,一直到下午一点才解决。┭┮﹏┭┮
问题
idea 导入maven项目报错,错误信息如下:
2020-03-10 12:42:14,606 [ 138105] INFO - #org.jetbrains.idea.maven - [WARNING] Failure to transfer XXX-api-dependencies:0.0.1-SNAPSHOT/maven-metadata.xml from https://nexus.XXX.cn/repository/maven-public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-releases has elapsed or updates are forced. Original error: Could not transfer metadata XXX-api-dependencies:0.0.1-SNAPSHOT/maven-metadata.xml from/to nexus-releases (https://nexus.XXX.cn/repository/maven-public): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2020-03-10 12:42:14,656 [ 138155] INFO - #org.jetbrains.idea.maven - org.apache.maven.model.resolution.UnresolvableModelException: Failure to transfer XXX-api-dependencies:pom:0.0.1-SNAPSHOT from https://nexus.XXX.cn/repository/maven-public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-releases has elapsed or updates are forced. Original error: Could not transfer artifact XXX-api-dependencies:pom:0.0.1-SNAPSHOT from/to nexus-releases (https://nexus.XXX.cn/repository/maven-public): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
java.lang.RuntimeException: org.apache.maven.model.resolution.UnresolvableModelException: Failure to transfer XXX-api-dependencies:pom:0.0.1-SNAPSHOT from https://nexus.XXX.cn/repository/maven-public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-releases has elapsed or updates are forced. Original error: Could not transfer artifact XXX-api-dependencies:pom:0.0.1-SNAPSHOT from/to nexus-releases (https://nexus.XXX.cn/repository/maven-public): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:196)
at org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:242)
at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:1062)
at org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:838)
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:332)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:171)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:122)
at org.jetbrains.idea.maven.server.Maven3ServerEmbedder.buildSinglePom(Maven3ServerEmbedder.java:195)
at org.jetbrains.idea.maven.server.Maven3ServerEmbedder.getProjectBuildingResults(Maven3ServerEmbedder.java:166)
at org.jetbrains.idea.maven.server.Maven3XServerEmbedder$3.run(Maven3XServerEmbedder.java:683)
at org.jetbrains.idea.maven.server.Maven3ServerEmbedder$2.run(Maven3ServerEmbedder.java:347)
at org.jetbrains.idea.maven.server.Maven3ServerEmbedder.executeWithSessionScope(Maven3ServerEmbedder.java:422)
at org.jetbrains.idea.maven.server.Maven3ServerEmbedder.executeWithMavenSession(Maven3ServerEmbedder.java:355)
at org.jetbrains.idea.maven.server.Maven3ServerEmbedder.executeWithMavenSession(Maven3ServerEmbedder.java:344)
at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.doResolveProject(Maven3XServerEmbedder.java:664)
at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.resolveProject(Maven3XServerEmbedder.java:626)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.RuntimeException: org.eclipse.aether.resolution.ArtifactResolutionException: Failure to transfer XXX-api-dependencies:pom:0.0.1-SNAPSHOT from https://nexus.XXX.cn/repository/maven-public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-releases has elapsed or updates are forced. Original error: Could not transfer artifact XXX-api-dependencies:pom:0.0.1-SNAPSHOT from/to nexus-releases (https://nexus.XXX.cn/repository/maven-public): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:423)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:225)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:202)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:257)
at org.apache.maven.project.ProjectModelResolver.resolveModel(ProjectModelResolver.java:192)
... 32 more
Caused by: java.lang.RuntimeException: org.eclipse.aether.transfer.ArtifactTransferException: Failure to transfer XXX-api-dependencies:pom:0.0.1-SNAPSHOT from https://nexus.XXX.cn/repository/maven-public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-releases has elapsed or updates are forced. Original error: Could not transfer artifact XXX-api-dependencies:pom:0.0.1-SNAPSHOT from/to nexus-releases (https://nexus.XXX.cn/repository/maven-public): PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.newException(DefaultUpdateCheckManager.java:226)
at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.checkArtifact(DefaultUpdateCheckManager.java:192)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.gatherDownloads(DefaultArtifactResolver.java:564)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:482)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:400)
... 36 more
解决
原因:idea中缓存maven仓库信息,由于项目文件地址改变,但是maven仓库信息并没有随之替换掉。
步骤:
- 找到本地项目maven repository仓库,删除
- 重启ideal,setting->Invalidate Caches/ Restart…
- maven重新import,搞定
反思
出现今天这次“车祸”主要是由于没有认真查看idea log,碰到问题,首先要认真查看日志,通过日志可以让自己准确定位错误问题。给大家一个“血”的经验~
参考:idea导入maven项目出现报错 感谢博主的问题以及网友的热心解答,Thanks♪(・ω・)ノ