【IDEA】 導入maven項目報錯 Could not transfer artifact com.XX.XX:XX(PKIX path building failed)

背景

雖然標題貌似跟證書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♪(・ω・)ノ

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章