首页 / 常见问题 / Maven 构建时,如何使用 HTTP 协议的 Nexus?

Maven 构建时,如何使用 HTTP 协议的 Nexus?

场景描述

目前平台默认支持 HTTPS 协议的 Nexus,当 Nexus 使用 HTTP 协议的依赖仓库时,使用 Maven 构建Maven 构建并分发 模板创建的 Jenkins 流水线会执行报错,因为平台默认提供了 Maven 3.8.1 版本,该工具官方处于安全考虑在 Maven 3.8.1 之后禁止了 HTTP 协议的使用。若需要使用 HTTP 协议的 Nexus,可按照下面的操作步骤解决。

前提条件

您使用的 Jenkins 须为平台快速部署并集成的 Jenkins 工具。

解决方法

  1. 在左侧导航栏中,单击 工具链管理 > 工具链集成

  2. 单击 Jenkins 工具卡片。

  3. 单击 实例 右侧的 实例名称,进入部署详情页面。

  4. 在下方的 构建节点 区域,找到平台默认的构建节点 Java

  5. 单击 更新构建节点,开启 Maven Settings 文件 开关,将以下代码粘贴进 内容 代码框中:

    <?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">
        <mirrors>
            <mirror>
                <id>maven-default-http-blocker</id>
                <mirrorOf>!*</mirrorOf>
                <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
                <url>http://0.0.0.0/</url>
                <blocked>true</blocked>
            </mirror>
        </mirrors>
    </settings>
  6. 单击 更新,更新完成后请重新触发流水线,即可使用 HTTP 协议拉取依赖包。