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

时间:2012-09-21 15:50:13

标签: java eclipse java-ee maven m2e

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 Dependencies添加到构建路径。

35 个答案:

答案 0 :(得分:146)

我遇到了同样的问题。

[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的日食开普勒。计算机坐在内部网络与代理到互联网。这就是我所做的。

<强> 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)然后重新编写 - 同样的问题出现了。

<强> 4。什么对我有用

自动下载&amp;安装缺少的插件: 通过在pluginManagement的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下载

答案 1 :(得分:125)

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

答案 2 :(得分:17)

要尝试的事情:

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

答案 3 :(得分:8)

我在使用eclipse kepler和maven 3.2版时遇到了同样的问题,

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

下有两个版本(2.5和2.6)的插件
.m2/repository/org/apache/maven/plugins/maven-resources-plugin/

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

答案 4 :(得分:7)

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

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

答案 5 :(得分:6)

我通过删除以下位置的文件夹2.6来解决问题

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

然后我在eclipse luna中创建了一个新的maven项目,它运行良好

答案 6 :(得分: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 

答案 7 :(得分:3)

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

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

答案 8 :(得分:3)

按照简单的步骤解决以下问题: 无法计算构建计划:插件org.apache.maven.plugins:maven-resources-plugin:2.5或其依赖项之一无法解析:无法读取org.apache.maven.plugins:maven-ar-的工件描述插件:ar:2.4 在日食中

enter image description here

解决方案: 第1步: enter image description here

第二步:

enter image description here

问题已解决

enter image description here

答案 9 :(得分:3)

这些答案都没有为我修好,但我在这篇文章中找到了答案:maven in 5 min not working,特别是解决方案#1。

答案 10 :(得分: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项目或更新项目而不会出现错误。

答案 11 :(得分: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>

运行一次构建后可以删除

答案 12 :(得分:2)

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

答案 13 :(得分:2)

希望我不会迟到。

使用Eclipse Kepler和Maven 3.1来实现这一点。

解决方案是为您的Eclipse项目使用JDK而不是JRE。一定要试试maven clean并从eclipse测试下载丢失的罐子。

答案 14 :(得分:2)

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

答案 15 :(得分:1)

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

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

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

答案 16 :(得分: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

答案 17 :(得分:1)

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

答案 18 :(得分:1)

his issue is happening due to change of protocol from http to https for central repository. please refer following link for more details. https://support.sonatype.com/hc/en-us/articles/360041287334-Central-501-HTTPS-Required 

In order to fix the problem, copy following into your pom.ml file. This will set the repository url to use https.

<repositories>
        <repository>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo.maven.apache.org/maven2</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo.maven.apache.org/maven2</url>
        </pluginRepository>
    </pluginRepositories>

答案 19 :(得分:1)

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

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

C:/Java

而不是

C:/Program Files/Java

这是Windows中的一个已知问题。我还修复了JAVA_HOME

2)在C:/Maven下的Java案例中安装maven。相应地修正了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
祝你好运

答案 20 :(得分:1)

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

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

答案 21 :(得分:1)

我有这个问题很长一段时间,直到我开始查看我的系统变量才弄明白。事实证明我将JAVA_HOME设置为JRE,而不是JDK。

答案 22 :(得分:0)

我面临着同样的问题,上述工作均无法完成,例如通过更新MVN也会出现同样的错误,通过构建也同样,即使在相同的问题下也可以在settings.xml中输入详细信息。

此后,我再次尝试并做了一些以前没有做过的事情,并且奏效了。

  

很简单,我在更新Mvn项目时单击了强制更新。   右键单击pom文件,在Maven下有一个选项,   “更新项目”,它会打开一个弹出窗口以选择更新选项。   请确保已选中强制更新,默认情况下未选中。和   宾果游戏,就像魅力一样!

答案 23 :(得分:0)

我已将项目转移到另一台机器上,将所有maven库从旧机器复制到了新机器上,做了右键单击我的项目>> Maven >>更新项目。然后建立我的项目。除此之外,我还完成了这一步,如屏幕快照所示。就是这样!

转到窗口->首选项-> Maven->用户设置,请确保您具有以下设置。.
enter image description here

还右键单击您的项目->属性-> Maven,并确保您具有指向Maven存储库的路径。.
enter image description here

答案 24 :(得分: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:\ path \ apache-maven-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

答案 25 :(得分: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>

答案 26 :(得分:0)

为了解决这个问题,我尝试了以下方法: (我正在开发 Eclipse IDE)

  1. 转到位置:C:\User\local.m2\setting.xml
  2. 在任何编辑器中打开 setting.xml 文件。
  3. 像我一样评论代理设置(见下面的 setting.xml 文件)。
  4. 然后转到 Eclipse 并从以下位置执行 Maven 更新:右键单击您的解决方案文件夹(您的项目)-> 选择 Maven-> 更新项目。
  5. 希望它像我一样对你有用。

<?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">
<!--
    <proxies>
        <proxy>
            <id>optional</id>
            <active>true</active>
            <protocol>http</protocol>
            <username>proxyuser</username>
            <password>proxypass</password>
            <host>proxy.host.net</host>
            <port>80</port>
        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>  
        </proxy>
    </proxies>
    -->
</settings>

答案 27 :(得分:0)

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

答案 28 :(得分:0)

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

答案 29 :(得分:0)

右键点击您的项目&gt;&gt; Maven&gt;&gt;更新项目。 然后建立你的项目,它对我有用。

答案 30 :(得分:0)

我遇到了同样的问题。

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

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

Eclipse&gt;帮助&gt;安装新软件&gt;可用软件站点&gt;添加

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

在安装窗口下&gt;使用:

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

答案 31 :(得分: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>

这帮助了我。

答案 32 :(得分:0)

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

中的SOCKS
Window > Preferences > Network Connections.

答案 33 :(得分:0)

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

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

enter image description here

答案 34 :(得分:-1)

我通过将 bluesky 添加到所有主题

来处理我的问题
<dependency>
   <groupId>org.primefaces.themes</groupId>
   <artifactId>all-themes</artifactId>
   <version>1.0.xx</version>
</dependency>