繁体   English   中英

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

[英]Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of its dependencies could not be resolved

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

我有同样的问题。

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

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. 什么对我有用

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


编辑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

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

要尝试的几件事:

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

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

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

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

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

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

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

在此处输入图片说明

解决方法:第一步: 在此处输入图片说明

第2步:

在此处输入图片说明

问题解决了

在此处输入图片说明

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

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

看来这个问题可能有很多不同的原因。 我在安装新版本的 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 

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

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

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

本地存储库中缺少某些文件。 通常在${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 项目或更新项目而不会出现错误。

我发现虽然 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>

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

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

希望我参加聚会没有迟到。

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

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

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

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

如果您在办公室使用 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

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

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

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

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

这对我有帮助。

除了@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定义了 jvm。 如果您的eclipse.ini没有-vm条目,则这不是强制性步骤。 我更新了:

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

代替:

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

祝你好运

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

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

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>

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

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

在此处输入图片说明

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

Window > Preferences > Network Connections.

我遇到了同样的问题。

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

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

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

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

在“安装窗口”>“使用”下:

选择这个新位置并添加所有出现的插件。 Eclipse 重新启动,它运行正常,没有以前的错误。

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

尝试下载不同版本的 maven。 我在 maven 3.5.2 上遇到了同样的问题,我只是下载了 maven 3.0.4 就解决了我的问题

很旧的东西。

解决了在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>

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

  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 项目
    在此处输入图片说明

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

转到窗口 --> 首选项 --> Maven --> 用户设置,确保你有这些设置..
在此处输入图片说明

也右键单击您的项目--> 属性--> Maven,并确保您在此处具有 Maven 存储库的路径..
在此处输入图片说明

我面临同样的问题,以上都没有奏效,比如通过更新 MVN 也有同样的错误,通过构建也是相同的,在 settings.xml 中输入详细信息,尽管即使是同样的问题。

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

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

为了解决这个问题,我尝试了以下方法:(我正在使用 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>

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM