ArtifactDescriptorException的解决方法

本文详细阐述了在切换Maven仓库路径时遇到的ArtifactDescriptorException问题,包括错误描述、问题分析及解决方案。通过排除jar包依赖问题、尝试不同下载地址等方法,最终将无法下载的jar包排除,从而解决问题。

转自:http://gaofeihang.blog.163.com/blog/static/845082852012102462727897/

最近在切换Maven Repository路径时,eclipse中遇到了ArtifactDescriptorException的问题,而且一下就是400多个error。


ArtifactDescriptorException的解决方法 - 高飞航 - 高飞航的博客
 
该错误的详细描述如下:

ArtifactDescriptorException: Failed to read artifact descriptor for woodstox:wstx-asl:jar:3.2.7: ArtifactResolutionException: Failure to transfer woodstox:wstx-asl:pom:3.2.7 from https://repository.cloudera.com/content/repositories/snapshots was cached in the local repository, resolution will not be reattempted until the update interval of cdh.snapshot.repo has elapsed or updates are forced. Original error: Could not transfer artifact woodstox:wstx-asl:pom:3.2.7 from/to cdh.snapshot.repo (https://repository.cloudera.com/content/repositories/snapshots): Failed to transfer https://repository.cloudera.com/content/repositories/snapshots/woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom. Error code 409, The repository 'libs-snapshot-local' rejected the artifact 'libs-snapshot-local:woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom' due to its snapshot/release handling policy.

看上去是有什么东西无法下载,但工程各种Clean、重新导入、Update Dependency、package、eclipse:eclipse都无效,切换到老的Repository就没问题。去新的路径下看,对应的jar包也都在,又怀疑pom中有格式错误,各种调整也没有解决。

后来执行 mvn dependency:tree 时,发现这样一段信息:

[WARNING] POM for 'com.taobao.promotioncenter:promotion-common-client:pom:2.2.0:compile' is invalid. Its dependencies (if any) will NOT be available to the current build. Downloading: http://mvnrepo.taobao.ali.com/mvn/repository/woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom [INFO] Unable to find resource 'woodstox:wstx-asl:pom:3.2.7' in repository central (http://mvnrepo.taobao.ali.com/mvn/repository) Downloading: https://repository.cloudera.com/content/repositories/snapshots/woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom [WARNING] Unable to get resource 'woodstox:wstx-asl:pom:3.2.7' from repository cdh.snapshot.repo (https://repository.cloudera.com/content/repositories/snapshots): Error transferring file: Server returned HTTP response code: 502 for URL: https://repository.cloudera.com/content/repositories/snapshots/woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom Downloading: https://repository.cloudera.com/content/groups/cloudera-repos/woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom [WARNING] Unable to get resource 'woodstox:wstx-asl:pom:3.2.7' from repository cdh.repo (https://repository.cloudera.com/content/groups/cloudera-repos): Error transferring file: Server returned HTTP response code: 502 for URL: https://repository.cloudera.com/content/groups/cloudera-repos/woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom Downloading: http://people.apache.org/~rawson/repo//woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom [INFO] Unable to find resource 'woodstox:wstx-asl:pom:3.2.7' in repository temp-thrift (http://people.apache.org/~rawson/repo/) Downloading: http://mvnrepo.taobao.ali.com/mvn/repository/woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom [INFO] Unable to find resource 'woodstox:wstx-asl:pom:3.2.7' in repository java.net (http://download.java.net/maven/2/) Downloading: http://repository.codehaus.org//woodstox/wstx-asl/3.2.7/wstx-asl-3.2.7.pom [INFO] Unable to find resource 'woodstox:wstx-asl:pom:3.2.7' in repository codehaus (http://repository.codehaus.org/) [WARNING] POM for 'com.taobao.hsf:hsf.services:pom:1.4:compile' is invalid.

可以看出,Maven尝试了各种下载地址仍没有成功下载这个jar包的信息,于是更倾向于无法下载的原因。

看了一下这个jar包的引用关系,是一个间接引用的非必需jar包,将其exclude掉后400多个error立即消失。

总结:
1. 该问题还是由于某个jar包相关的信息无法下载,导致Maven无法正确读取其pom中的信息,因此是ArtifactDescriptorException。
2. 其他400多个error是由于这一个问题jar包导致,可以随之一起修复。
3. 像这种实在无法下载的情况,最好的方式就是将其exclude掉。如果是必需的jar包,暂时不知道有什么好的方法。但必需的应该是很常用的jar包,不会出现这种无法下载的情况。
Description Resource Path Location Type An error occurred while filtering resources TaskManagerWeb line 1 Maven Java EE Configuration Problem CoreException: Could not get the value for parameter compilerId for plugin execution default-compile: PluginResolutionException: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1 or one of its dependencies could not be resolved: Failed to collect dependencies at org.apache.maven.plugins:maven-compiler-plugin:jar:3.8.1 -> org.apache.maven:maven-plugin-api:jar:3.0 -> org.sonatype.sisu:sisu-inject-plexus:jar:1.4.2 -> org.codehaus.plexus:plexus-component-annotations:jar:1.7.1: ArtifactDescriptorException: Failed to read artifact descriptor for org.codehaus.plexus:plexus-component-annotations:jar:1.7.1: UnresolvableModelException: Failure to transfer org.sonatype.forge:forge-parent:pom:10 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.sonatype.forge:forge-parent:pom:10 from/to central (https://repo.maven.apache.org/maven2): No connector factories available pom.xml /TaskManagerWeb line 63 Maven Project Build Lifecycle Mapping Problem CoreException: Could not get the value for parameter compilerId for plugin execution default-testCompile: PluginResolutionException: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.8.1 or one of its dependencies could not be resolved: The following artifacts could not be resolved: org.apache.maven:maven-core:jar:3.0, org.apache.maven:maven-settings:jar:3.0, org.apache.maven:maven-settings-builder:jar:3.0, org.apache.maven:maven-repository-metadata:jar:3.0, org.apache.maven:maven-model-builder:jar:3.0, org.apache.maven:maven-aether-provider:jar:3.0, org.sonatype.aether:aether-impl:jar:1.7, org.sonatype.aether:aether-spi:jar:1.7, org.sonatype.aether:aether-api:jar:1.7, org.sonatype.aether:aether-util:jar:1.7, org.codehaus.plexus:plexus-interpolation:jar:1.14, org.codehaus.plexus:plexus-classworlds:jar:2.2.3, org.codehaus.plexus:plexus-component-annotations:jar:1.7.1, org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3, org.sonatype.plexus:plexus-cipher:jar:1.4, org.apache.maven.shared:maven-shared-utils:jar:3.2.1, commons-io:commons-io:jar:2.5, org.apache.maven.shared:maven-shared-incremental:jar:1.1, org.codehaus.plexus:plexus-java:jar:0.9.10, org.codehaus.plexus:plexus-compiler-api:jar:2.8.4, org.codehaus.plexus:plexus-compiler-manager:jar:2.8.4, org.codehaus.plexus:plexus-compiler-javac:jar:2.8.4: Failure to transfer org.apache.maven:maven-core:jar:3.0 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven:maven-core:jar:3.0 from/to central (https://repo.maven.apache.org/maven2): The operation was cancelled. pom.xml /TaskManagerWeb line 63 Maven Project Build Lifecycle Mapping Problem Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (execution: default-compile, phase: compile) pom.xml /TaskManagerWeb line 63 Maven Project Build Lifecycle Mapping Problem Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile (execution: default-testCompile, phase: test-compile) pom.xml /TaskManagerWeb line 63 Maven Project Build Lifecycle Mapping Problem Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the project context menu or use Quick Fix. TaskManagerWeb line 1 Maven Configuration Problem Project configurator "com.genuitec.eclipse.maven.wtp.hibernate.configurator.wtp" required by plugin execution "org.apache.maven.plugins:maven-war-plugin:3.2.3:war (execution: default-war, phase: package)" is not available. To enable full functionality, install the project configurator and run Maven->Update Project Configuration. pom.xml /TaskManagerWeb line 71 Maven Project Build Lifecycle Mapping Problem Project configurator "com.genuitec.eclipse.maven.wtp.spring.configurator.wtp" required by plugin execution "org.apache.maven.plugins:maven-war-plugin:3.2.3:war (execution: default-war, phase: package)" is not available. To enable full functionality, install the project configurator and run Maven->Update Project Configuration. pom.xml /TaskManagerWeb line 71 Maven Project Build Lifecycle Mapping Problem Unhandled exception type SQLException TaskController.java /TaskManagerWeb/src/main/java/com/taskmanager/controller line 57 Java Problem Unhandled exception type SQLException TaskController.java /TaskManagerWeb/src/main/java/com/taskmanager/controller line 69 Java Problem Unhandled exception type SQLException TaskController.java /TaskManagerWeb/src/main/java/com/taskmanager/controller line 80 Java Problem Unhan
05-30
eclipse添加完maven依赖之后还是报错Failed to read artifact descriptor for org.bytedeco:ffmpeg:jar:5.0.1-1.5.7 org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.bytedeco:ffmpeg:jar:5.0.1-1.5.7 at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:255) at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:171) at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.resolveCachedArtifactDescriptor(DefaultDependencyCollector.java:541) at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.getArtifactDescriptorResult(DefaultDependencyCollector.java:524) at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:412) at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:365) at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process(DefaultDependencyCollector.java:352) at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:254) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:284) at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:169) at org.apache.maven.project.DefaultProjectBuilder.resolveDependencies(DefaultProjectBuilder.java:227) at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:200) at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:124) at org.eclipse.m2e.core.internal.embedder.MavenImpl.readMavenProject(MavenImpl.java:630) at org.eclipse.m2e.core.internal.project.registry.DefaultMavenDependencyResolver.resolveProjectDependencies(DefaultMavenDependencyResolver.java:65) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refreshPhase2(ProjectRegistryManager.java:550) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.lambda$3(ProjectRegistryManager.java:514) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:153) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:512) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:364) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:315) at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration0(ProjectConfigurationManager.java:409) at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.lambda$1(ProjectConfigurationManager.java:358) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:153) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:101) at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1370) at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:357) at org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob.runInWorkspace(UpdateMavenProjectJob.java:79) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Failure to transfer org.bytedeco:ffmpeg:pom:5.0.1-1.5.7 from http://insecure.repo1.maven.org/maven2/ was cached in the local repository, resolution will not be reattempted until the update interval of repo2 has elapsed or updates are forced. Original error: Could not transfer artifact org.bytedeco:ffmpeg:pom:5.0.1-1.5.7 from/to repo2 (http://insecure.repo1.maven.org/maven2/): Failed to transfer http://insecure.repo1.maven.org/maven2/org/bytedeco/ffmpeg/5.0.1-1.5.7/ffmpeg-5.0.1-1.5.7.pom. Error code 501, HTTPS Required at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:424) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:229) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:207) at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:240) ... 31 more Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Failure to transfer org.bytedeco:ffmpeg:pom:5.0.1-1.5.7 from http://insecure.repo1.maven.org/maven2/ was cached in the local repository, resolution will not be reattempted until the update interval of repo2 has elapsed or updates are forced. Original error: Could not transfer artifact org.bytedeco:ffmpeg:pom:5.0.1-1.5.7 from/to repo2 (http://insecure.repo1.maven.org/maven2/): Failed to transfer http://insecure.repo1.maven.org/maven2/org/bytedeco/ffmpeg/5.0.1-1.5.7/ffmpeg-5.0.1-1.5.7.pom. Error code 501, HTTPS Required at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.newException(DefaultUpdateCheckManager.java:225) at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.checkArtifact(DefaultUpdateCheckManager.java:193) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.gatherDownloads(DefaultArtifactResolver.java:559) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:483) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:401) ... 34 more
最新发布
09-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值