Maven依赖和上传至私服

更新时间:
复制 MD 格式

本文为您介绍如何通过Flow流水线构建Maven类型的制品,上传私有Maven制品仓库。其内容包括创建制品仓库、配置、推送制品。

前提条件

Maven依赖设置

Flow会自动帮你代理阿里云Maven公库和云效组织私库Packages,若您需要使用组织自建的Maven私库,或者需要使用自定义的Maven配置,可以通过以下任意一种方式完成设置。

Flow 支持以下三种方式设置Maven配置依赖:

  • 代码库根目录新建或创建settings.xml文件。

  • 流水线Flow全局设置 > 构建配置 ,在组织Maven设置选择自定义Maven配置,上传settings.xml 文件。

  • 云效默认Maven配置settings.xml文件。

目前,Maven配置仅影响Java构建,优先级如下:

  1. Flow构建会默认优先加载代码库根目录Mavensettings.xml配置文件,该配置仅影响与此代码库相关的流水线。同时需要在构建命令中,指定settings.xml文件。

    mvn -s settings.xml clean package
  2. 如果用户在流水线Flow单击全局设置 > 构建配置,在组织Maven设置选择自定义 Maven 配置,且上传了settings.xml文件,则该组织下所有的Flow流水线Java构建都会使用此配置文件。

  3. 如果用户的项目代码库根目录没有Maven配置settings.xml文件,且没有设置自定义Maven配置, Flow构建时会为用户自动生成一个settings.xml文件,并且配置连接阿里云组织私有仓库阿里云公共代理仓库

    说明

    用户通过 Flow流水线构建时,会默认优先从阿里云组织私有仓库下载依赖,若无法寻找到构建依赖则会从阿里云公共代理仓库下载。

访问凭证配置

  1. 制品仓库页面,单击目标私有Maven仓库。

  2. 在左侧导航栏,选择仓库指南 > Maven配置,查看推送配置信息。

    推送配置包含两个步骤:步骤一 设置仓库凭证,在 settings.xml<servers> 节点下添加 <server>,将 <id> 设为 private,并填写仓库的用户名和密码;步骤二 制品上传配置,在 <profiles> 中通过 altReleaseDeploymentRepository 属性指定部署仓库地址,格式为 private::default::https://packages.aliyun.com/maven/xxx/private。若需上传 snapshot 版本制品,将属性名改为 altSnapshotDeploymentRepository

    说明

    您可以在仓库指南页面手动下载Mavensettings.xml配置文件、上传文件到新建的代码库根目录或在代码库根目录新建settings.xml文件并进行配置。

  3. 代码库 页面,单击目标代码库。

  4. 进入代码库根目录,上传Maven配置settings.xml文件或在代码库根目录新建settings.xml配置文件,选择任一一种即可。

    <?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">
        <!-- 设置仓库凭证 -->
        <servers>
            <server>
                <id>private</id>
                <username>${MVN_USERNAME}</username>
                <password>${MVN_PASSWORD}</password>
            </server>
        </servers>
        <!-- 制品上传配置 -->
        <profiles>
            <profile>
                <id>rdc</id>
                <properties>
                    <altReleaseDeploymentRepository>
                        private::default::https://packages.aliyun.com/xxx/maven/private
                    </altReleaseDeploymentRepository>
                </properties>
            </profile>
        </profiles>
        <!-- 添加activeProfiles配置 -->
        <activeProfiles>
            <activeProfile>rdc</activeProfile>
        </activeProfiles>
        <!-- 添加阿里云公库代理配置 -->
        <mirrors>
            <mirror>
                <id>mirror</id>
                <mirrorOf>central,jcenter,!private</mirrorOf>
                <name>mirror</name>
                <url>https://maven.aliyun.com/nexus/content/groups/public</url>
            </mirror>
        </mirrors>
    </settings>
    说明
    • 在新建Maven配置settings.xml文件时,为了避免拷贝或手动创建导致格式相关的问题,推荐您在仓库指南 > Maven配置页面手动下载进行上传。

    • 为保护访问凭证的安全性,Flow 支持通过自定义环境变量设置访问凭证。

Flow构建与推送

在流水线构建阶段,任务步骤 > Java构建,输入构建命令,其它构建参数说明,请参考Java测试构建,单击右上方仅保存

选择 JDK 版本JDK 1.8Maven 版本Maven 3.5.2,构建命令输入 mvn -s settings.xml -B clean package -Dmaven.test.skip true -Dautoconfig.skip

说明

默认的settings.xml包含云效的私有仓库相关配置。如果你想在构建时使用自定义Maven配置,可以联系组织管理员在全局设置自定义Maven配置文件settings.xml或者将配置文件上传到代码库指定的目录下,并在Maven构建命令中设置settings.xml文件的位置-s settings.xml 即可。

mvn -s settings.xml -B clean deploy -Dmaven.test.skip=true -Dautoconfig.skip

构建命令

解释说明

mvn

Maven命令行工具的执行程序,用于执行Maven构建生命周期。

-s settings.xml

这个选项指定了Maven使用的settings文件的位置。settings.xml文件包含了Maven的配置信息,如仓库凭证、仓库地址等。

-B clean deploy

这个选项指定了两个Maven生命周期阶段:cleandeploy。clean阶段用于清理之前的构建产物,而deploy阶段用于将构建好的项目部署到配置的远程仓库中。

-Dmaven.test.skip=true

这个选项告诉Maven在构建过程中跳过测试阶段。这在快速部署或集成测试时非常有用。

-Dautoconfig.skip

这个选项用于跳过Maven的自动配置。通常情况下,Maven会根据settings.xml文件中的配置自动配置项目,但这个选项可以用来覆盖这些自动配置。

查看运行结果

  1. flow流水线查看构建的运行结果。

    流水线运行完成后,左侧步骤列表中申请运行环境清理工作区克隆代码流水线缓存Java 构建构建物上传缓存上传等步骤均显示绿色对勾,表示全部执行成功。单击构建物上传步骤可查看详细日志,确认构建产物已打包并成功上传至 OSS。

  2. Maven私服制品仓库下,查看上传的制品包版本。

相关文档

Java测试构建

在左侧导航栏单击包列表,选择目标制品包(如 com.example:social-simple),右侧详情面板展示版本总数、推送人、推送时间等信息,并可在文件信息 Tab 下查看和下载具体文件(如 maven-metadata.xml.pom.jar 及校验文件)。