更新时间:2024-12-02 GMT+08:00

使用Maven构建

使用Maven构建Java项目。

图形化构建

配置构建步骤中,添加“Maven构建”构建步骤,参考表1配置参数。

表1 Maven构建步骤参数说明

参数

说明

步骤显示名称

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

  • 支持中文、英文、数字、“-”“_”、英文逗号、英文分号、英文冒号、“.”“/”、圆括号(中英文)。
  • 字符长度范围为1~128。

工具版本

根据用户实际开发环境的需要,选择对应的工具版本。

CodeArts Build支持的工具版本,可查看构建工具版本。若当前的工具版本不满足您的使用要求,您可以自定义构建环境

命令

配置Maven命令,一般使用系统默认生成的命令即可。如果需要配置更多命令,可参考Maven官网

失败后是否继续运行

当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。

setting配置

  • 自动生成setting文件并配置依赖仓库:可根据用户的IP不同,自动识别最优站点访问CodeArts提供的“setting.xml”文件。

    国内用户使用“国内站点”,国际用户使用“国际站点”。建议使用默认配置。

    “setting.xml”文件中定义了默认的依赖拉取顺序和镜像源代理等配置信息,如果需要使用自定义的“setting.xml”文件,可添加自定义setting.xml文件,然后在默认的打包命令末尾添加--settings settings.xml,即可使用已添加的“settings.xml”文件执行Maven构建。

  • 公有依赖仓库:默认已添加华为开源镜像站,同时配置了HuaweiSDK仓库。此配置仅在需要添加非CodeArts提供的公有依赖仓库时使用,添加方法如下:
    1. 单击“添加”
    2. 填写公有依赖仓库地址,根据需要勾选“release仓库”“snapshot仓库”。release仓库和snapshot仓库至少勾选一个,也可以同时勾选。

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

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

  • 私有依赖库:默认已配置CodeArts提供的私有依赖仓库。此配置仅在需要添加其它私有依赖仓库时使用,添加方法如下:
    1. 新建nexus repository服务扩展点。
    2. 单击“添加”,选择上一步创建的服务扩展点,并根据需要勾选“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构建的依赖包存入缓存之后,只有当租户下面构建的项目有引进新的依赖包时,才会更新缓存目录,并不支持对已有的依赖包缓存文件进行更新。

代码化构建

参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
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
            ignore_fail: true
表2 代码示例参数说明

参数

类型

说明

image

string

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

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

settings

map

可选参数。不配置,则默认使用CodeArts提供的setting.xml文件,如果需要使用自定义的“settings.xml”文件,可先添加自定义setting.xml文件,然后在默认的打包命令mvn package -Dmaven.test.failure.ignore=true -U -e -X -B末尾添加--settings settings.xml。

cache

bool

可选参数。

配置是否开启缓存。

  • true:开启。
  • false:不开启。

默认值:false。

command

string

配置执行的Maven命令。如果需要配置更多命令,可参考Maven官网

unit_test

map

可选参数。

配置单元测试。详细操作指导参考配置单元测试

ignore_fail

string

用于控制当前步骤执行失败后是否继续执行下一个步骤。
  • true:是。
  • 为空:否。

添加自定义“setting.xml”文件

  • 图形化构建
    1. “Maven构建”的命令窗口执行cat /home/build/.m2/settings.xml命令,任务执行完成后,会在构建日志中展示“settings.xml”文件的内容。
    2. 参考构建日志中的“settings.xml”的信息自定义新的“settings.xml”文件。
    3. “Maven构建”步骤前增加“下载文件管理的文件”构建步骤。

      自定义步骤显示名称,工具版本当前仅支持“shell4.2.46-git1.8.3-zip6.00”

    4. 单击“上传”,在弹出的窗口中选择2中自定义的文件,添加描述,勾选相关协议,然后单击“保存”
    5. “下载文件”中选择上传的“setting.xml”文件。
  • 代码化构建
    参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。
    1
    2
    3
    4
    5
    6
    7
    version: 2.0 # 必须是2.0
    steps:
      BUILD:
        - download_file:
              inputs:
                name: settings.xml
                ignore_fail: true
    
    表3 下载文件管理的文件代码示例参数说明

    参数

    类型

    说明

    name

    string

    setting文件名称。

    ignore_fail

    string

    用于控制当前步骤执行失败后是否继续执行下一个步骤。

    • true:是。
    • 为空:否。
  • 文件大小限制为100k。
  • 文件类型限制为:.xml、.key、.keystore、.jks、.crt、.pem。
  • 最多支持上传20个文件。
已上传的文件可通过两种访问路径进行文件管理。
  • 在编译构建服务首页,单击“更多”,选择“文件管理”
  • 或在“下载文件管理的文件”构建步骤中单击“管理文件”
在文件管理页面,可以编辑文件、下载文件、删除文件、为用户配置文件操作权限。
  • 在搜索框输入关键字,可搜索文件。
  • 单击操作列,可修改文件名称,并设置是否允许租户内所有成员在编译构建中使用该文件。
  • 单击操作列,可以下载文件。
  • 单击操作列,在下拉框中选择“删除”,可根据弹框提示确认是否删除。
  • 单击操作列,在下拉框中选择“编辑权限”,可在弹出的界面配置用户操作文件的权限。
    图1 配置用户操作文件权限
    表4 文件管理角色权限说明

    权限类型

    拥有该权限的角色

    添加用户

    项目下所有用户。

    查看

    文件创建者、相同租户的用户。

    使用

    文件创建者、文件创建者配置了使用权限的用户。

    更新

    文件创建者、文件创建者配置了更新权限的用户。

    删除

    文件创建者、文件创建者配置了删除权限的用户。

    编辑权限

    文件创建者。

    创建者默认有所有权限并且不可被删除和修改。