187
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 依赖项添加到构建路径。

4

31 回答 31

163

我有同样的问题。

[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 Kepler。坐在内部网络上的计算机,具有到 Internet 的代理。这就是我所做的。

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)然后重新运行 maven - 出现了同样的问题。

4. 什么对我有用

自动下载和安装缺少的插件: 通过在插件管理的 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”。这解决了问题。


编辑1

在此之后,我对“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

于 2013-07-23T05:40:47.427 回答
134

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

于 2012-09-28T11:47:31.647 回答
18

几件事要尝试:

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

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

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

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

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

我删除了 2.5 版本,然后它对我有用

于 2014-06-23T14:21:28.203 回答
7

看来这个问题可能有很多不同的原因。我是在安装新版本的 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 
于 2014-10-04T03:11:54.360 回答
7

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

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

于 2013-07-18T13:26:33.373 回答
4

您应该 Force Update Snapshots/Releases在使用 maven 更新项目时进行检查。它对我有用:-)。强制更新快照/发布

于 2018-05-29T20:00:54.463 回答
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>

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

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

于 2013-10-25T18:26:37.457 回答
3

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

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

于 2012-11-16T15:21:18.227 回答
3

我发现,虽然 m2e 默认在寻找 v2.5,但我的本地 repo 有 2.6 而没有 2.5。

无需调查这是如何发生的,只需将依赖项添加到 pom 即可解决问题

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

这可以在运行一次构建后删除

于 2014-02-07T19:47:36.380 回答
2

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

于 2013-03-27T17:52:36.423 回答
2

希望我的聚会不会迟到。

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

解决方案是为您的 Eclipse 项目使用 JDK 而不是 JRE。确保从 Eclipse 中尝试 maven clean 和测试只是为了下载丢失的 jar。

于 2013-08-21T09:31:20.807 回答
2
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>
于 2020-01-23T05:48:44.217 回答
1

就我而言,我正在使用带有 m2e 的外部 maven 安装。我已将代理设置添加到外部 maven 安装的 settings.xml 文件中。即使在我将外部 maven 安装设置为默认 maven 安装之后,m2e 也没有使用这些设置。

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

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

于 2014-09-03T11:43:43.893 回答
1

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

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

<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

于 2013-11-03T04:58:39.780 回答
1

我有同样的问题,但有其他原因。解决方案是停用 Avira 浏览器保护(德语 Browser-Schutz)。我从 m2e 中获得了解决方案,无法从 nexus 传输元数据,但 maven 命令行可以。它可以再次激活,maven 有需要的插件。

于 2013-08-11T16:02:49.790 回答
1

如果您在 Maven 的settings.xml中配置了存储库,请检查您是否有权访问它。

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

于 2016-08-25T11:33:55.633 回答
1

在 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>

这对我有帮助。

于 2015-07-30T11:11:24.323 回答
1

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

1)安装jdk目录下不带空格:

C:/Java

代替

C:/Program Files/Java

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

2) 在 Java 案例中安装 maven,在C:/Maven. 相应地修复了M2_HOME

3)我在笔记本电脑上安装了 java 7 和 java 8。所以我使用eclipse.ini. 如果您-vmeclipse.ini. 我更新了:

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

代替:

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

祝你好运

于 2016-06-15T11:24:49.860 回答
0

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

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

在此处输入图像描述

于 2014-12-15T05:56:49.390 回答
0

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

Window > Preferences > Network Connections.
于 2015-04-07T07:59:27.663 回答
0

我已经将我的项目转移到另一台机器上,将我所有的 maven 库从旧机器复制到新机器,右键单击我的项目 >> Maven >> 更新项目。然后建立我的项目。除此之外,我还完成了屏幕截图中显示的这一步骤。这就是它的全部工作!

转到 Window --> Preferences --> Maven --> User Setting,确保你有这些设置..
在此处输入图像描述

还右键单击您的项目--> 属性--> Maven,并确保您在此处具有 maven 存储库的路径..
在此处输入图像描述

于 2019-06-07T07:22:51.437 回答
0

很老的东西。

解决了修复 localRepository 的问题settings.xml。该文件是从我的另一台计算机复制的,.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>
于 2018-06-11T15:05:36.557 回答
0

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

  1. 单独安装 Maven
    https://www.mkyong.com/maven/how-to-install-maven-in-windows/
  2. 在 Eclipse 中设置外部 Maven 安装
    在此处输入图像描述


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 用户设置 在此处输入图像描述

  2. 更新 Maven 项目
    在此处输入图像描述

于 2019-03-05T13:53:22.827 回答
0

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

于 2017-09-06T16:25:32.487 回答
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 重新启动,它运行正常,以前没有错误。

于 2016-09-28T06:07:12.797 回答
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>

于 2021-07-03T12:22:24.463 回答
0

尝试下载不同版本的 Maven。我对 maven 3.5.2 也有同样的问题,我只下载了 maven 3.0.4 就解决了我的问题

于 2018-02-26T14:57:55.640 回答
0

我在 Ubuntu 18.04 上使用 Eclipse 时遇到了同样的问题。我试过了:

  1. 设置 settings.xml 文件没有结果;
  2. 强制重建项目,同样的错误;
  3. 使用@JackDev 的建议。但是当我去单独下载每个资源时,我注意到 wget 由于https://repo1.maven.org上的自签名证书而失败。这提供了原因的线索。

我暂时关闭了服务器的病毒防御,并且能够从 Eclipse 内部正确构建。我在这里提到这一点,以防其他人看到同样的限制。

于 2021-11-17T15:32:55.673 回答
0

我面临同样的问题,以上都不起作用,比如通过更新 MVN 也同样的错误,通过构建也是相同的,在 settings.xml 中输入了详细信息,即使是同样的问题。

在那之后,我再次尝试并做了一些以前没有做过的不同的事情并且它有效。

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

于 2019-08-27T16:33:14.060 回答