当前位置: 首页 > 知识库问答 >
问题:

Maven依赖项失败,出现501错误

管和志
2023-03-14

最近,在Jenkins中运行的Maven构建作业失败了,但有以下例外,它们不能从Maven Central中提取依赖项,因此应该使用HTTPS。我不知道如何将请求从HTTP更改为HTTPS。在这件事上有人能指导我吗?

[错误]无法解析的生成扩展:
插件org.apache.maven.wagon:wagon-ssh:2.1或其依赖项之一无法解析:
未能收集org.apache.maven.wagon:wagon-ssh:jar:2.1():
未能读取org.apache.maven.wagon:wagon-ssh:jar:2.1:
无法将项目org.apache.maven.wagon:wagon-ssh:jar:2.1:
无法将项目->[帮助2]

正在等待Jenkins完成收集数据[错误]
Pluginorg.apache.maven.Plugin:maven-clean-plugin:2.4.1或其依赖项之一无法解析:
无法读取org.apache.maven的项目描述符。plugins:maven-clean-plugin:jar:2.4.1:
无法将项目org.apache.maven.Plugin.pom:2.4.1从/到中央(http://repo.maven.apache.org/maven2):->[帮助1]

共有2个答案

阴迪
2023-03-14

我也面临同样的问题。我尝试了两种解决方案,两种方案都很适合我。

  • 更新Maven版本存储库(Maven版本>=3.2.3)
  • 限制当前Maven版本使用HTTPS链接。

更新Maven版本存储库:

下载包含默认https地址的Apache Maven二进制文件(Apache Maven 3.6.3二进制文件)。并打开NetBeans菜单栏工具(Java Maven对话框视图)中的选项对话框窗口。并在Maven主列表框(Maven主列表框视图)中选择browse选项。添加Apache Maven新下载的版本(更新的Maven主页列表框视图)后,项目成功构建并运行。

限制当前Maven版本使用HTTPS链接:

在项目的pom.xml中包括以下代码。

<project>
      ...
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
        </pluginRepository>
    </pluginRepositories>
    <repositories>
        <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>
丌官信厚
2023-03-14

所观察到的错误的原因在Central 501 HTTPS Required中解释

从2020年1月15日起,中央存储库不再支持通过普通HTTP的不安全通信,并且要求对存储库的所有请求都通过HTTPS加密。

看起来最新版本的Maven(在3.6.0和3.6.1中试用)已经默认使用HTTPS URL。

以下是主要存储库切换的日期:

您的Java构建可能会从1月13日开始中断(如果您还没有切换到HTTPS的回购访问权限)

更新:似乎从maven 3.2.3可以通过HTTPS访问maven central(请参阅HTTPS://stackoverflow.com/A/25411658/5820670

Maven更改日志(http://Maven.apache.org/docs/3.2.3/release-notes.html)

 类似资料:
  • 问题内容: 最近,在 Jenkins 中运行的 Maven 构建作业失败,但出现以下异常,原因是它们无法从 Maven Central 提取依赖项,应使用 HTTPS 。我不确定如何将请求从 HTTP 更改为 HTTPS 。有人可以指导我吗? __ [错误] 无法解析的构建扩展: 插件或其依赖项之一无法解析: 无法收集以下项的依赖项: 无法读取以下项的工件描述符: 无法从/到中央传输工件(http

  • 我在尝试使用“create”创建WebClient实例的线路上收到一个NoClassDefFoundError。尝试了builder(),但仍然是一样的。 请告诉我添加的依赖项有什么问题,以及如何解决这个问题。 我添加的依赖项是 StackTrace:

  • 我在我的项目中使用Maven3。它已经在架子上搁置了一段时间,但我们最近又开始着手处理了。 关于如何正确“修复”我们的pom.xml文件的任何具体建议都将不胜感激。

  • 我对Maven相当陌生,试图编译一个非常简单的项目。这是我的pom。xml文件: 当我执行时,我得到一堆错误。显然,依赖项没有下载和使用。这是错误日志: 如果我遗漏了什么,有人能指出我吗? 谢谢。

  • 我目前正在使用Maven开发一个Java项目。在我的我收到了这个错误。 我添加了这种依赖性 到我的。但错误仍然是一样的。 我是否缺少为依赖项添加存储库?我也没有在我的。 有人能建议我在我的中添加的存储库代码吗?