首页 / 常见问题 / 如何为 java 构建节点配置 Maven 构建缓存和依赖仓库?

如何为 java 构建节点配置 Maven 构建缓存和依赖仓库?

概述

为 Jenkins 实例的构建节点配置构建缓存及依赖仓库后,Jenkins 流水线构建过程中,可复用下载的依赖包,缩短构建时间,有效提高流水线的构建效率、降低网络带宽消耗并实现对依赖项的控制。

本文将为您说明,如何为 Java 构建节点配置 Maven 构建缓存和 Maven 依赖仓库。

Maven 简介

Maven 是一种强大的构建工具,用于管理 Java 项目的依赖关系和构建过程。

用作 Java 构建节点的构建缓存后,可满足的场景如下:

Nexus Repository Manager 简介

Nexus Repository Manager 提供了一个中心化的仓库,用于存储和管理构建产物,并提供访问控制、安全性、版本控制等功能。

用作 Maven 的依赖仓库后,可提供以下特性:

配置 Maven 构建缓存

前提条件

操作步骤

  1. 进入 平台管理 视图后,在左侧导航栏中,单击 工具链管理 > 实例管理

  2. 单击 Jenkins 实例的名称

  3. 构建节点 页签下,单击待配置缓存的 Java 节点。

  4. 单击 更新构建节点

  5. 添加 构建缓存,参考以下说明,配置相关参数。

    方案 参数配置 说明
    方案 1 存储类型Persistent volume Claim
    缓存类型Maven 缓存
    缓存路径/root/.m2/repository
    .m2/repository 是 Maven 用来存储所有项目依赖项的默认目录,通常用作 Maven 项目依赖项的本地缓存。当您在 Maven 项目的 pom.xml 文件中指定依赖项后,Maven 会尝试从 .m2/repository 目录中检索这些依赖项,以减少对远程存储库的网络请求,提高构建效率。
    方案 2 存储类型Persistent volume Claim
    缓存类型自定义
    缓存路径/root/.m2/cache
    .m2/cache 是 Maven 3.6.0 及更高版本引入的功能,用于存储远程仓库的缓存数据。.m2/cache 通过引入 Mirror Image 概念,可以将远程存储库的数据缓存到本地,避免重复的网络请求。这对于在构建时频繁访问远程仓库的情况非常有益,可以显著减少构建时间,并降低对网络的依赖。
  6. 单击 更新

验证缓存是否生效

  1. 切换至 DevOps 视图,在左侧导航栏中,单击 CI/CD > Jenkins

  2. 执行流水线(构建节点 为已配置了构建缓存的 Java 节点且包含 Maven 构建任务),并查看流水线的 Pod。

    说明:若 Pod 挂载了为构建缓存配置的 PVC,则表明构建缓存已生效。YAML 示例如下:

    volumes:
        - name: volume-0
        secret:
            defaultMode: 420
            secretName: demo-xxxx-2603138448
        - name: volume-2
        persistentVolumeClaim:
            claimName: demo-jenkins-pvc

配置 Maven 依赖仓库

您可根据实际业务的使用需求,灵活选择依赖仓库的配置方式。

前提条件

平台已集成了 Nexus,且 Nexus 中已存在 Maven 仓库(Repository)。

方式 1:使用平台集成分配的 Maven 依赖仓库

将 Maven 依赖仓库分配给平台项目后,可为不同项目下以 图形化创建/模板创建 方式创建的任一流水线的 Maven 构建任务灵活配置依赖仓库。

配置方法

  1. 参考 分配平台项目 将 Nexus 中的 Maven 仓库分配给平台中的指定项目。

  2. 在项目下以 图形化创建/模板创建 方式创建流水线并添加 Maven 构建 时,选择平台分配的 Maven 仓库作为 依赖仓库

方式 2:通过 Maven Settings 文件配置依赖仓库

为 java 构建节点配置依赖仓库后,平台上所有使用该构建节点的流水线构建时,均可从该依赖仓库拉取依赖项。

说明:配置构建节点级别的依赖仓库不影响用户为 Maven 构建任务配置其他的依赖仓库,配置的所有依赖仓库均可使用。

操作步骤

  1. 进入 平台管理 视图后,在左侧导航栏中,单击 工具链管理 > 实例管理

  2. 单击 Jenkins 实例的名称

  3. 构建节点 页签下,单击要配置依赖仓库的 Java 节点。

  4. 单击 更新构建节点

  5. 启用 Maven Settings 文件 功能,在 内容 中输入以下配置信息,配置 Maven 的依赖仓库。

    注意:需要将配置信息中的 用户名密码Maven repository URL 替换为访问 Nexus 中 Maven 仓库的用户名、密码及 URL。

    <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
    
    <servers>
        <server>
        <id>my-maven-repository</id>
        <username>{ 用户名 }</username>
        <password>{ 密码 }</password>
        </server>
    </servers>
    <profiles>
        <profile>
        <id>my-default-profile</id>
        <repositories>
            <repository>
            <id>my-maven-repository</id>
            <name>my-maven-repository</name>
            <url>{ Maven repository URL }</url>
            <layout>default</layout>
            </repository>
        </repositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>my-default-profile</activeProfile>
    </activeProfiles>
    </settings>
  6. 单击 更新