无法计算构建计划:插件org.apache.maven.plugins:maven-resources-plugin:2.5或其中一个依赖项无法解析

问题描述 投票:166回答:26
org.apache.maven.plugin.PluginResolutionException: Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.5
    at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:129)
    at org.eclipse.m2e.core.internal.project.registry.EclipsePluginDependenciesResolver.resolve(EclipsePluginDependenciesResolver.java:48)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:142)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getMojoDescriptor(DefaultMavenPluginManager.java:261)
    at org.apache.maven.plugin.DefaultBuildPluginManager.getMojoDescriptor(DefaultBuildPluginManager.java:185)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.setupMojoExecution(DefaultLifecycleExecutionPlanCalculator.java:152)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.setupMojoExecution(MavenImpl.java:386)
    at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.setupMojoExecution(ProjectRegistryManager.java:865)
    at org.eclipse.m2e.core.internal.project.registry.MavenProjectFacade.getMojoExecution(MavenProjectFacade.java:355)
    at org.eclipse.m2e.core.project.configurator.AbstractCustomizableLifecycleMapping.getBuildParticipants(AbstractCustomizableLifecycleMapping.java:66)
    at org.eclipse.m2e.core.project.configurator.AbstractLifecycleMapping.configure(AbstractLifecycleMapping.java:87)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:414)
    at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:351)
    at org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob.runInWorkspace(UpdateMavenProjectJob.java:74)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: org.sonatype.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.5
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:296)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:186)
    at org.sonatype.aether.impl.internal.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:279)
    at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:115)

我已经阅读过许多人能够解决这个问题的方法:

我是Maven的新手,请原谅我的无知

这个项目正在另一台机器上运行,只是在这个机器上的存储库中将其拉下来,安装了相同版本的eclipse和m2e插件。我现在已经愚弄了这个超过10个小时,它让我疯了(到目前为止,Maven对我来说只是头疼......)任何帮助都非常感谢!提前致谢!

编辑

仔细观察后,我注意到它没有将.jar文件下载到本地存储库中......我不确定这是否是显而易见的......

编辑

我没有选择将Maven依赖项添加到构建路径。

java eclipse java-ee maven m2e
26个回答
147
投票

我有同样的问题。

[ERROR] Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-resources-plugin:jar:2.5: Failure to find org.apache.maven.plugins:maven-resources-plugin:pom:2.5 in http://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 -> [Help 1]
...

有了maven 3.0.5,安装了JBoss Dev Studio 7的eclipse开普勒。计算机坐在内部网络与代理到互联网。这就是我做的。

0.检查maven存储库服务器是否已启动

1.检查代理已设置并正常工作

首先我认为这是代理问题,我确保maven settings.xml包含代理设置(settings.xml可以存在于MAVEN_HOME中的两个位置。另一个位于%userprofile%。m2 \中,后者具有更高的优先级) :

<proxy>
  <id>optional</id>
  <active>true</active>
  <protocol>http</protocol>
  <username>optional-proxyuser</username>
  <password>optional-proxypass</password>
  <host>proxy.host.net</host>
  <port>80</port>
  <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>

并检查代理是否正在尝试telnet到它:

telnet [proxy] [port number]

2.检查不是Eclipse问题

在eclipse之外的命令行级别运行'mvn compile' - 同样的问题。

如果'mvn compile'有效。但它在eclipse中使用maven插件无效,请参阅Maven plugin not using eclipse's proxy settings

3.检查不是缓存问题删除了本地maven存储库中的所有内容。 (默认位置:〜/ .m2 / repository)然后重新编写 - 同样的问题出现了。

什么对我有用

自动下载并安装缺少的插件:通过在plumManagement的POM文件构建部分中声明缺少的插件,Maven将自动检索所需的插件。在POM文件中,为您需要的插件版本添加此代码:

  <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <version>2.7</version>
            </plugin>           
          </plugins>
        </pluginManagement>   
    </build>

手动安装缺少的插件:我去了http://mvnrepository.com/artifact/org.apache.maven.plugins/maven-resources-plugin/2.5并下载了maven-resources-plugin-2.5.jarmaven-resources-plugin-2.5.pom。将它直接复制到maven存储库中的正确文件夹(〜/ .m2 / repository / org / apache / maven / plugins / maven-resources-plugin / 2.5)并重新'mvn compile'。这解决了这个问题。


EDIT1

在此之后我又遇到了'mvn install'的两个问题:

The POM for org.apache.maven.plugins:maven-surefire-plugin:jar:2.10 is missing, no dependency information available

The POM for org.apache.maven.plugins:maven-install-plugin:jar:2.3.1 is missing, no dependency information available

我以同样的方式解决了这个问题,从http://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin/2.10http://mvnrepository.com/artifact/org.apache.maven.plugins/maven-install-plugin/2.3.1下载


2
投票

一个更微妙的原因可能是一个Settings.xml文件,它在doctype之前的第一行有一个空格


2
投票

希望我参加晚会不会迟到。

使用Eclipse Kepler和Maven 3.1遇到了这个问题。

解决方案是为Eclipse项目使用JDK而不是JRE。确保尝试maven清理并从eclipse测试只是为了下载丢失的罐子。


2
投票

你应该用maven更新项目时检查Force Update Snapshots/Releases。它对我有用:-)。 Force Update Snapshots/Releases


1
投票

我有同样的问题,但有其他原因。解决方案是停用Avira Browser Protection(德语Browser-Schutz)。我从m2e cannot transfer metadata from nexus, but maven command line can那里得到了溶剂。它可以再次激活maven有所需的插件。


1
投票

大多数人会告诉您检查您的代理设置或删除并重新添加工件,但我会远离它,并提出另一个建议,以防万一,这不是你的问题。它可能是您的镜像设置。

如果您在办公室使用maven,那么maven很有可能被配置为查找您公司的内部maven存储库。如果你在家里做一些工作,而你没有连接到网络,这可能是问题所在。一个明显的解决方案可能是办公室的VPN,以获得该回购的可见性。另一种方法是在您的/User/.m2/settings.xml文件中添加另一个镜像站点,这样如果它无法在您的办公室网络上找到它,它将尝试公开回购。

<mirror>
    <id>Central</id>
    <url>http://repo1.maven.org/maven2</url>
    <mirrorOf>central</mirrorOf>
    <!-- United States, St. Louis-->
</mirror>

对于其他maven存储库,请看一下:http://docs.codehaus.org/display/MAVENUSER/Mirrors+Repositories


1
投票

在我的情况下,我正在使用m2e的外部maven安装。我已将我的代理设置添加到外部maven安装的settings.xml文件中。即使在我将外部maven安装设置为默认maven安装后,m2e仍未使用这些设置。

为了解决这个问题,我在eclipse中将全局maven设置文件配置为来自我的外部maven安装的settings.xml文件。

现在eclipse可以下载所需的工件。


1
投票

除了@JackDev回复之外,还解决了我的问题

1)在没有空格的目录下安装jdk:

C:/Java

代替

C:/Program Files/Java

这是Windows中的已知问题。我也修好了JAVA_HOME

2)在C:/Maven下安装maven,就像Java一样。相应修正了M2_HOME

3)我的笔记本电脑上的java 7和java 8。所以我用eclipse.ini定义了jvm。如果你的-vm没有eclipse.ini条目,这不是强制性步骤。我更新了:

C:/Java/jdk1.7.0_79/jre/bin/javaw.exe

代替:

C:/Java/jdk1.7.0_79/bin/javaw.exe

祝好运


1
投票

如果您已在maven的settings.xml中配置了存储库,请检查您是否可以访问它。

当我遇到这个问题时,在settings.xml中配置了企业存储库,但我不在公司。


0
投票

在我将默认存储库更改为另一个文件夹后,JackDev的选项3适用于我。

以下是我在M2E插件自动下载maven-resources-plugin-2.6后看到的内容。如果您想采用手动方法,这可能会给您一些提示。必要的文件可以从这里下载:https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/


0
投票

如果您有代理,则还必须清除SOCKS

Window > Preferences > Network Connections.

127
投票

我有完全相同的问题,因为我在某处读到错误是由缓存文件引起的,我通过删除.m2存储库文件夹下的所有文件来修复它。下次我构建项目时,我不得不再次下载所有依赖项,但这是值得的 - 0错误!


0
投票

在settings.xml中输入代理设置后

<proxies>
<!-- proxy 
 | Specification for one proxy, to be used in connecting to the network.
 |  -->
<proxy>
  <id>optional</id>
  <active>true</active>
  <protocol>http</protocol>
  <username>DOMAIN\YOURID</username>
  <password>123456</password>
  <host>proxy.company.com</host>
  <port>8080</port>
  <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>

</proxies>

检查以下标记在settings.xml中是否具有值false

<offline>false</offline>

这对我有帮助。


0
投票

我遇到了同样的问题。

我刚从下面的网站安装了m2e(Maven2Eclipse)插件:

http://www.eclipse.org/m2e/

Eclipse>帮助>安装新软件>可用软件站点>添加

Name: m2e (any name is OK)
Location:m2e - http://download.eclipse.org/technology/m2e/releases/

在安装窗口>使用下:

选择此新位置并添加显示的所有插件。 Eclipse重启并且运行正常,没有先前的错误。


0
投票

如果您在公司工作,他们可能会阻止您下载外部软件并进行安装。您可能需要手动安装插件或重新指向内部镜像存储库。


0
投票

尝试下载不同版本的maven。我和maven 3.5.2有同样的问题,我解决了我的问题,只需下载maven 3.0.4


0
投票

很老的东西。

解决了在settings.xml中修复localRepository的问题。此文件是从我的其他计算机复​​制而来的.m2存储库的路径不一样。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <localRepository>C:\Users\foo\.m2</localRepository>

</settings>

0
投票

我可以通过以下步骤解决问题

  1. 分别安装Maven https://www.mkyong.com/maven/how-to-install-maven-in-windows/
  2. 在Eclipse中设置外部Maven安装 enter image description here

3.在Maven安装中的settings.xml中设置代理 (C:\路径\ Apache的行家-3.6.0 \ CONF)

<proxy>
 <id>optional</id>
 <active>true</active>
 <protocol>http</protocol>
 <username>optional-proxyuser</username>
 <password>optional-proxypass</password>
 <host>proxy.host.net</host>
 <port>80</port>
 <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
  1. 更新Maven用户设置enter image description here
  2. 更新Maven项目 enter image description here

0
投票

我已将我的项目转移到另一台机器,将所有我的maven库从旧机器复制到新机器,右键单击我的项目>> Maven >> Update Project。然后构建我的项目。除此之外,我还完成了这一步骤,如截图所示。这一切都有效!!

转到窗口 - >首选项 - > Maven - >用户设置,确保您有这些设置.. enter image description here

右键单击你的项目 - >属性 - > Maven,并确保你有maven存储库的路径.. enter image description here


17
投票

有几件事要尝试:

  1. 双击settings.xml文件中配置的本地工件仓库的位置(位于以下位置{your home folder}/.m2/settings.xml)。你确定当地的回购是你认为的吗? (是的,我过去犯过的错误......)
  2. 删除新构建计算机上的工件仓库的全部内容(或至少与Maven相关的任何内容)。你提到做一些神器repo清理,但我不确定你删除了哪些目录。当jar被破坏时,我遇到了类似这些奇怪的问题。
  3. 确保您有足够的磁盘空间/配额用于本地工件仓库。当我没有足够大的配额来容纳所有工件时,我遇到了一些奇怪的问题,可能是由部分下载的jar文件引起的。
  4. 尝试在命令行上使用普通Maven运行;将Eclipse和m2e排除在等式之外。 mvn -U dependency:resolve应该这样做。无论您的存储库更新策略是什么,-U都会强制Maven下载。添加-X以获取详细的调试日志记录。
  5. 将settings.xml从MAVEN_HOME \ conf \复制到USER_HOME.m2。如果您位于代理服务器后面,请添加代理(如果需要)。

8
投票

我在使用eclipse kepler和maven 3.2版时面临同样的问题,

在构建项目时,它在eclipse中向我展示了同样的错误

插件下有两个版本(2.5和2.6)

.m2/repository/org/apache/maven/plugins/maven-resources-plugin/

我删除了2.5版本然后它为我工作


7
投票

我的问题是配置文件的位置。

在eclipse设置(Windows-> preferences-> maven-> User Settings)中,maven的默认配置文件指向C:\users\*yourUser*\.m2\settings.xml。如果你解压缩maven并将其安装在你选择的文件夹中,那么文件将在*yourMavenInstallDir*/conf/中,因此可能不是eclipse认为的(我的不是)。如果是这种情况,maven将无法正确加载。您只需将“用户设置”路径设置为指向正确的文件即可。


6
投票

看来这个问题可能有很多不同的原因。我在安装Eclipse(Luna)的新版本后体验过它。命令行maven运行良好,但Eclipse有构建问题。

我在JRE中使用证书颁发机构。这很重要,因为这在下载Maven资源时提供了我的身份验证。即使我的项目指向Eclipse内部相应的JRE - Eclipse也使用不同的JRE运行(这很明显地看着Windows任务管理器中的Java进程属性)。我的解决方案是在我的eclipse.ini中添加以下内容并明确定义我想要使用的JRE。

-vm
C:\Program Files\Java\jdk1.7.0_51\bin\javaw.exe 

3
投票

尝试删除/usr/share/maven-repo中的所有目录 - 当然然后maven将会死亡,因此您必须重新安装并重试。在我的情况下从maven ver.3重新安装。 maven2删除所有存储库帮助。

我尝试删除.m2中的所有内容,但这没有帮助。


3
投票

某些文件在本地存储库中丢失。通常在${user.home}/.m2/repository/

Neets的回答解决了这个问题。但是,如果您不想再次将所有依赖项下载到本地存储库,则可以将缺少的依赖项添加到您的项目中并进行编译。

使用maven存储库网站查找依赖项。在你的情况下http://mvnrepository.com/artifact/org.apache.maven.plugins/maven-resources-plugin/2.5失踪了。

将列出的XML复制到项目的pom.xml文件中。在这种情况下

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
</dependency>

在pom.xml的根文件夹中运行mvn compile。 Maven将下载所有缺少的依赖项。下载后,您可以删除添加的依赖项。

现在您应该能够导入maven项目或更新项目而不会出现错误。


3
投票

我发现,虽然m2e默认情况下正在寻找v2.5,但我的本地仓库有2.6而没有2.5。

没有进入调查,如何简单地将依赖性添加到pom解决了问题

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
</dependency>

运行一次构建后可以删除它

© www.soinside.com 2019 - 2024. All rights reserved.