更新时间:2026-01-08 GMT+08:00

使用Maven构建

图形化构建

配置构建步骤中,添加“Maven构建”构建步骤。

参数说明如下:

参数项

说明

步骤显示名称

构建步骤的名称,可自定义修改。

工具版本

根据需要选择工具版本。

命令

配置Maven命令,一般使用系统默认生成的命令即可。

setting配置

  • 自动生成setting文件并配置依赖仓库:可根据用户的IP不同,自动识别最优站点访问方式,国内用户使用“国内站点”,国际用户使用“国际站点”。建议使用默认配置。
  • 公有依赖仓库:默认已添加开源镜像站,同时配置了SDK仓库。此配置仅在需要添加非软开云提供的公有依赖仓库时使用,添加方法如下:
    1. 单击“添加”
    2. 填写公有依赖仓库地址,根据需要勾选“release仓库”“snapshot仓库”。release仓库和snapshot仓库至少勾选一个,也可以同时勾选。

      release仓库:勾选后,构建过程将尝试从仓库中下载release版本依赖。

      snapshot仓库:勾选后,构建过程将尝试从仓库中下载snapshot版本依赖。

  • 私有依赖库:默认已配置软件开发生产线提供的私有依赖仓库。此配置仅在需要添加其它私有依赖仓库时使用,添加方法如下:
    1. 单击“添加”,选择上一步创建的服务扩展点,并根据需要勾选“release仓库”“snapshot仓库”
说明:

“release仓库”“snapshot仓库”两种仓库对应的使用场景区分如下,使用时要务必注意区分,避免出现如“将依赖上传到软件发布库但是构建时无法下载”此类场景。

  • “snapshot仓库”:对于以调试为目的发布的私有依赖包,一般会给依赖版本号增加-SNAPSHOT后缀(如:1.0.0-SNAPSHOT),执行发布操作时,此类依赖会自动发布到snapshot仓库,发布时无需更新版本号,构建命令中增加-U参数即可拉取最新版本。
  • 对于正式发布的私有依赖包,版本号中不可带-SNAPSHOT后缀(如:1.0.0),执行发布操作时,此类依赖会自动发布到release仓库,发布时必须更新版本号,否则会导致构建过程无法拉取最新依赖包。

发布依赖包到CodeArts私有依赖库

编译构建服务默认使用私有依赖库作为私有依赖下载源,如果需要将构建产物上传至私有依赖库供其他项目依赖使用,则需要添加此配置。配置前,需已。配置方法如下:

  • 不配置pom:表示无需发布私有依赖包到CodeArts私有依赖库。
  • 配置所有pom:表示在项目下所有“pom.xml”文件增加deploy配置,使用mvn deploy命令将构建出的依赖包上传到私有依赖仓库。

    配置后,需在命令窗口,使用“#”注释命令mvn package -Dmaven.test.skip=true -U -e -X -B

    删除#mvn deploy -Dmaven.test.skip=true -U -e -X -B命令前的“#”

上传的私有依赖包,在其他项目添加pom.xml文件中的groupId、artifactId、version坐标即可引用。

单元测试

如果用户需要对单元测试结果进行处理,可配置此项。详见配置单元测试

缓存配置

选择是否使用缓存以提高构建速度,选择“使用缓存”后,每次构建时会把下载依赖包缓存起来,后续构建无需重复拉取,可有效提高构建速度。

说明:

maven构建的依赖包存入缓存之后,只有当租户下面构建的项目有引进新的依赖包时,才会更新缓存目录,并不支持对已有的依赖包缓存文件进行更新。

代码化构建

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
version: 2.0 # 必须是2.0
steps:
  BUILD:
    - maven:
          image: cloudbuild@maven3.5.3-jdk8-open # 可以自定义镜像地址
          inputs:
            settings:
              public_repos:
                - https://mirrors.example.com/maven
            cache: true # 是否开启缓存
            unit_test:
              coverage: true
              ignore_errors: false
              report_path: "**/TEST*.xml"
              enable: true
              coverage_report_path: "**/site/jacoco"
            command: mvn package -Dmaven.test.failure.ignore=true -U -e -X -B

参数名

参数类型

描述

是否必填

默认值

image

string

镜像地址,有以下两种格式。

  • cloudbuild@maven3.5.3-jdk8-open ,以cloudbuild开始,@作为分隔符,后面是编译构建提供的默认镜像。
  • 完整的swr镜像地址,例如:swr.example.example.com/codeci_test/demo:141d26c455abd6d7xxxxxxxxxxxxxxxxxxxx

settings

map

maven构建的setting配置。

cache

bool

是否开启缓存。

false

command

string

执行命令。

unit_test

map

单元测试。

单元测试(unit_test)层级下参数说明:

参数名

参数类型

描述

是否必填

默认值

enable

bool

是否处理单元测试数据。

true

ignore_errors

bool

是否忽略单元测试错误。

true

report_path

String

单元测试数据路径。

converage

bool

是否处理覆盖率数据。

false

coverage_report_path

string

覆盖率数据路径。