Maven 依赖项因 501 错误而失败

新手上路,请多包涵

最近,在 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:pom:2.1 从/到中央( http://repo.maven.apache.org/maven2 )传输:

传输文件失败: http ://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom。

返回码是: 501, ReasonPhrase:HTTPS Required. -> [Help 2]

等待 詹金斯 完成收集 data[ERROR]

插件 org.apache.maven.plugins:maven-clean-plugin:2.4.1 或其依赖项之一无法解析:

无法读取 org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1 的工件描述符:

无法将工件 org.apache.maven.plugins:maven-clean-plugin:pom:2.4.1 从/到中央( http://repo.maven.apache.org/maven2 )传输:

传输文件失败: http ://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom。

返回码是: 501 , ReasonPhrase:HTTPS Required. -> [Help 1]

原文由 Arunan Sugunakumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 651
2 个回答

Central 501 HTTPS required 中解释了观察到错误的原因

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

默认情况下,最新版本的 Maven(尝试使用 3.6.0、3.6.1)似乎已经在使用 HTTPS URL。

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

从 1 月 13 日开始,您的 Java 构建可能会中断(如果您尚未将 repo 访问切换到 HTTPS)

更新:似乎从 maven 3.2.3 maven central 是通过 HTTPS 访问的,请参阅 https://stackoverflow.com/a/25411658/5820670

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

原文由 farasath 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

更新 Maven 版本库:

下载包含默认 https 地址的 Apache Maven 二进制文件( Apache Maven 3.6.3 二进制文件)。并在 NetBeans 菜单栏的工具中打开 _Options 对话框窗口_( Java Maven Dialog View )。并在 Maven Home List Box( Maven Home List Box View )中选择浏览选项。添加新下载的Apache Maven版本( Updated Maven Home List Box View )后,项目成功构建并运行。

限制当前 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>

原文由 Muhammad umer 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏