Top Banner
编译构建 用户指南 文档版本 09 发布日期 2017-05-05 华为技术有限公司
34

用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

Jun 23, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

编译构建

用户指南

文档版本 09

发布日期 2017-05-05

华为技术有限公司

Page 2: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

版权所有 © 华为技术有限公司 2017。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传

播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或

特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声

明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文

档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司

地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址: http://www.huawei.com

客户服务邮箱: [email protected]

客户服务电话: 4008302118

文档版本 09 (2017-05-05) 华为专有和保密信息

版权所有 © 华为技术有限公司

i

Page 3: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

目 录

1 登录编译构建首页........................................................................................................................... 1

2 管理构建任务分组........................................................................................................................... 3

3 新建编译构建任务........................................................................................................................... 5

4 修改/删除编译构建任务..................................................................................................................9

5 执行、禁用编译构建任务............................................................................................................. 15

6 查看编译构建任务......................................................................................................................... 17

7 常见问题......................................................................................................................................... 217.1 如何使用编译构建?.................................................................................................................................................. 227.2 如何设置 Java 环境 Maven 类型的编译构建任务?................................................................................................ 237.3 如何自定义 Java 环境 Ant 类型编译构建任务的构建路径?................................................................................. 257.4 Android 环境的常见编译构建任务场景有哪些?....................................................................................................267.5 常见编译构建失败问题如何解决?.......................................................................................................................... 30

编译构建用户指南 目 录

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

ii

Page 4: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

1 登录编译构建首页

介绍登录编译构建首页的操作步骤。

操作步骤

步骤1 登录软件开发云首页,在上方功能菜单区单击“服务 > 编译构建”。

进入到“编译构建”首页,如图1-1所示。

图 1-1 编译构建首页

步骤2 在左上方可以查看编译构建中有多少次构建、构建的成功率和可用构建任务个数,以及最近七天的构建成功率分布。

步骤3 在左下方可以查看到与当前用户相关的编译构建任务。

l 编译构建任务支持在文本框中输入名称关键字进行搜索。

编译构建用户指南 1 登录编译构建首页

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

1

Page 5: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

l 单击 / 可以根据实际情况管理构建任务分组。

l 编译构建任务的显示方式支持“列表模式”和“卡片模式”,默认显示“卡片模式”。请根据需要切换显示方式。

l 将鼠标移到编译构建任务名称上,即显示名称链接,单击名称链接进入6 查看编译构建任务。

步骤4 单击“新建任务”可以新建编译构建任务。

步骤5 在右侧可以查看与当前用户相关的最新消息。

l 单击“更多”,显示更多消息动态。

l 如果没有消息,即显示“暂无动态”。

l 单击消息节点,进入到对应消息详情页面。

说明

消息通知事件及其是否提醒请在查看编译构建任务的“通知”页面中进行开启。开启通知后,编译构建任务所属项目的成员均会收到提醒。

----结束

编译构建用户指南 1 登录编译构建首页

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

2

Page 6: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

2 管理构建任务分组

介绍管理构建任务分组的相关操作,包括搜索、新建、编辑、删除分组等。

前提条件

l 用户只能管理自己创建的分组,如编辑、删除分组。

l 非用户自己创建的分组只能查看。

操作步骤

步骤1 登录编译构建首页。

步骤2 在编译构建首页单击 。

弹出“管理分组”窗口。

步骤3 单击 。

根据提示信息,直接在文本框中输入分组名称,按“Enter”。新添加的分组显示在“管理分组”列表中。

步骤4 (可选)搜索分组。

在“管理分组”窗口搜索文本框中输入分组名关键字,单击搜索按钮,显示搜索结果。

步骤5 单击待编辑的分组名称。

“管理分组”窗口右侧显示待添加的编译构建任务列表,可以根据实际情况勾选添加/移出与用户相关编译构建任务;如果目标任务不在同一页,请在上方进行搜索任务后再勾选,如图2-1所示。

编译构建用户指南 2 管理构建任务分组

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

3

Page 7: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

图 2-1 添加/移出编译构建任务

勾选完成后,单击“保存”。如果需要将编译构建任务移出分组,去掉勾选后,单击“保存”。

步骤6 (可选)单击待删除分组所在行后的“删除”。

弹出确认删除对话框,单击“确定”。

说明

用户只能删除自己新建的分组。

步骤7 查看分组及分组中的编译构建任务。

单击编译构建首页的 ,显示所有分组列表。分组支持多选,即可同时显示多个分组下的编译构建任务。

----结束

编译构建用户指南 2 管理构建任务分组

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

4

Page 8: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

3 新建编译构建任务

介绍新建编译构建任务的操作步骤。

前提条件

目前分为“项目任务”和“个人任务”:

l “项目任务”:目前新建的编译构建任务必须隶属于项目,即项目任务,且项目任务的成员及其成员权限直接与所属项目的成员及其成员权限一致。

l “个人任务”:为系统历史版本已经创建且未关联项目的任务,后续个人任务系统会逐步切换到项目下,请将个人任务挂在某个项目下。

操作步骤

步骤1 登录编译构建首页。

步骤2 单击编译构建首页“新建构建任务”。

进入快速新建编译构建任务页面,如图3-1所示。

说明

新建编译构建任务的方式还有一种从项目中进行创建,操作如下:

1. 登录项目管理首页。

进入到项目“看板”页面。

2. 单击左侧导航“构建”菜单。进入到项目中的编译构建页面,单击“新建任务”。

编译构建用户指南 3 新建编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

5

Page 9: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

图 3-1 新建任务

表 3-1 参数说明

参数项 说明

任务名称 构建任务的名称,不同企业用户下的任务名称可相同。

归属项目 选择编译构建任务所属的项目。

说明

l 归属项目下拉框中的选项为已经创建且当前用户具有权限的项目。

l 如果没有项目,请先新建项目。

编译构建用户指南 3 新建编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

6

Page 10: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

参数项 说明

构建环境 默认为Java环境。目前支持的环境类型如下:

l Java

l C/C++

l PHP

l Android

l Groovy

l Python

l EMBEDDED

l Other

构建类型 构建环境对应的构建类型。选择的不同的“构建环境”,“构建类型”也不一样。具体构建类型如下:

l Java– Maven– Ant

l C/C++– CMake

l PHP– Shell命令行

l Android– Gradle

l Groovy– Grails

l Python– Python

l EMBEDDED– CodeSourceRy

l Other– Shell命令行

代码仓库 选择编译构建任务的代码仓库来源。

分支 选择代码仓库的分支。

归档 请根据需要设置归档路径。

说明归档路径配置方法如下:

l Maven任务默认填写“target/*.jar”,可根据实际情况自行修改。

l Ant任务默认填写“build/jar/*.jar”,可根据实际情况自行修改。

l Grails任务默认填写“target/*.war”,可根据实际情况自行修改。

l 其他类型任务没有默认值,可根据实际情况填写。

编译构建用户指南 3 新建编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

7

Page 11: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

步骤3 设置完参数信息,单击“新建”。

新建完成后,进入编译构建任务详情页面。

----结束

编译构建用户指南 3 新建编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

8

Page 12: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

4 修改/删除编译构建任务

介绍编译构建任务管理的相关操作,包括修改和删除编译构建任务。

前提条件

创建者和项目经理可以修改编译构建任务。

操作步骤

步骤1 登录编译构建首页。

步骤2 在编译构建首页下方搜索需要操作的任务(如“CodeCI01”),如图4-1所示。

图 4-1 搜索构建任务

步骤3 (可选)单击编译构建任务的 可删除对应构建任务。

弹出删除确认提示框。请根据实际情况确定删除。

说明

只有任务创建者、项目经理和项目创建者可以删除编译构建任务。

步骤4 单击构建任务的 按钮。

编译构建用户指南 4 修改/删除编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

9

Page 13: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

进入“基本信息”页面,如图4-2所示。

图 4-2 基本信息

表 4-1 基本信息

参数项 说明

任务名称 构建任务的名称,不同企业下的任务名称可相同,请根据实际需要修改。

归属项目 编译构建任务所属的项目。归属项目不可更改。

任务描述 对编译构建任务的详细描述。

执行参数配置

配置执行条件参数。如果需要增加执行参数,单击“添加参数”添加执行参数;如果需要添加多个参数,继续单击“添加参数”。添加好的参数显示在“参数列表”中,并根据需要设置参数名称与参数值。用户可以根据实际需要添加多个执行参数。

设置执行参数后,在执行构建任务时,会弹出该执行参数,提示设置执行参数值。

说明执行参数的类型支持“字符类型”和“自定义类型”两种。

l 字符类型:仅可以设置一个默认值。适用于执行构建任务时,手工输入参数值或使用默认值。

l 自定义类型:可以设置多个默认值(多个参数以英文分号隔开)。适用于执行构建任务时,通过下拉列表选择不同默认值(不支持手工输入)。

步骤5 设置完基本信息,单击“下一步”。

说明

如果只对当前操作页面进行修改,可以直接单击“保存”。保存成功后,进入编译构建任务详情页面。

进入“代码配置”页面,选择下载代码的仓库分支及代码存储目录,如图4-3所示。

编译构建用户指南 4 修改/删除编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

10

Page 14: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

图 4-3 代码配置

说明

l 请根据需要给分支设置执行参数,既可以选择已有的分支,也可以自行填写自定义参数。自定义参数设置规则为${ParameterName},如“${Branch}”,其中“Branch”为在配置任务第一步(基本信息)中已经添加的执行参数,且参数名需与“基本信息”中添加的执行参数名保持一致;设置执行参数后,在构建任务时,将按照设置的参数值构建对应分支。

l 选择代码仓库后,可以根据需要选中“自动构建”,即提交了代码后,会自动进行构建。

如果同时选中多个代码仓库,且均需设置“自动构建”,则对应代码仓库的“自动构建”均需选中。

步骤6 设置完代码配置后,单击“下一步”。

进入“构建配置”页面,如图4-4所示。

图 4-4 构建配置

编译构建用户指南 4 修改/删除编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

11

Page 15: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

表 4-2 构建配置参数说明

参数项 说明

编译构建前

配置编译构建前步骤。

如果需要增加构建步骤,请在下拉列表中单击需要增加的步骤类型,并设置其相应的值。构建步骤类型如下:

l 执行Maven

l 执行Ant

l 执行shell

l 执行Sourcery CodeBench

l 执行setuptools

构建环境 构建环境的类型。请根据实际情况选择语言类型。目前支持的类型如下:

l Java

l C/C++

l PHP

l Android

l Groovy

l Python

l EMBEDDED

l Other

构建类型 构建类型来自于“构建环境”,并根据不同构建环境而变化。不同构建环境的构建类型不一样。

说明

l “构建环境”选择“Java”、“构建类型”选择“Maven”时,Maven构建默认使用软件开发云的Mirror仓库,用户可通过构建将软件包上传到发布服务的Maven release和Maven snapshot仓库,也可跳转到发布服务将本地软件包上传到Maven release仓库,即可在构建中依赖“发布服务”。

l “构建环境”选择“php”或“Other”时,单击待编辑的命令窗口右上角放大按钮,可最大化命令窗口进行编辑;重新单击放大按钮,可退出最大化。

编译构建用户指南 4 修改/删除编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

12

Page 16: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

参数项 说明

编译构建后

配置编译构建后步骤。

如果需要增加构建步骤,请在下拉列表中单击需要增加的步骤类型,并根据实际情况设置其相应的值。构建步骤类型如下:

l 执行Maven

l 执行Ant

l 执行shell

l 执行Grails

l 执行Cmake

l 执行Sourcery CodeBench

l 执行setuptools

l 发布到编译构建仓库

说明发布的构建包请在“发布管理首页”的“编译构建仓库”页签中进行下载。

步骤7 设置完构建配置后,单击“下一步”。

进入“构建执行配置”页面,如图4-5所示。

图 4-5 构建执行配置

表 4-3 构建执行配置参数说明

参数项 说明

构建结果 配置构建结果步骤。构建结果目前仅支持“归档”类型。

如果需要增加结果步骤,请在下拉列表中单击“归档”,并设置其相应的归档值。

说明“用于归档的文件”与构建类型有关,方法如下:

l Maven任务默认填写“target/*.jar”,可根据实际情况自行修改。

l Ant任务默认填写“build/jar/*.jar”,可根据实际情况自行修改。

l Grails任务默认填写“target/*.war”,可根据实际情况自行修改。

l 其他类型任务没有默认值,可根据实际情况填写。

编译构建用户指南 4 修改/删除编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

13

Page 17: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

步骤8 设置完构建执行配置后,单击“下一步”。

进入“构建计划配置”页面,如图4-6所示。

图 4-6 构建计划配置

表 4-4 构建计划配置参数说明

参数项 说明

计划周期 周期类型分为:

l 不定时即不设置定时时间,根据实际情况单击“开始构建”进行手动构建。

l 每日设置每天的某一时间进行定时构建,格式为“HH:MM”,如每天八点,则填写“08:00”。

l 每周设置每周某天的某一时间进行定时构建。构建日期为周一至周日,选中构建日期(如“周一”)后,再填写构建时间,“HH:MM”(如“08:00”)。

构建时长限制 构建任务的最大构建时长。默认时长为8小时。

说明取值范围为1~24之间的整数,最小值为1小时,最大值为24小时。

步骤9 设置完构建计划配置后,直接单击“保存”。

修改完成后,进入编译构建任务详情页面。

----结束

编译构建用户指南 4 修改/删除编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

14

Page 18: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

5 执行、禁用编译构建任务

介绍执行编译构建任务的操作步骤。

前提条件

l 编译构建任务已建立并具有权限。

l 创建者、项目经理及开发人员可以执行编译构建任务。

l 创建者和项目经理可以禁用编译构建任务。

操作步骤

步骤1 登录编译构建首页。

步骤2 在编译构建首页下方搜索目标任务。

步骤3 单击编译构建任务所在区的“开始构建”开始执行构建。

此时,构建任务按钮由“正在启动”显示为“停止构建”,执行完成后,恢复为“开始构建”。

说明

l 如果构建任务在创建时配置了执行参数,单击“开始构建”,弹出执行参数提示框,根据需要设置执行参数值。

配置执行参数方法请参见4 修改/删除编译构建任务页面的设置“基本信息”步骤。

l 如果当前编译构建任务显示“已禁用”,则不能执行构建;如果需要执行构建,请先取消禁用。

步骤4 (可选)单击构建任务所在区的 可以禁用编译构建任务。

编译构建任务被禁用后,不能执行构建;如果需要执行构建,请重新单击 取消禁用。

步骤5 (可选)单击“停止构建”按钮。

弹出确认停止构建任务提示框,单击“确定”。

步骤6 (可选)查看构建历史、构建状态详情、构建日志等,请参见6 查看编译构建任务。

编译构建用户指南 5 执行、禁用编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

15

Page 19: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

说明

当前构建状态为最近一次的构建结果。例如,最近一次构建失败,构建状态显示红色圈圈 ,如图5-1所示。

图 5-1 最近一次构建失败

----结束

编译构建用户指南 5 执行、禁用编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

16

Page 20: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

6 查看编译构建任务

介绍查看编译构建任务的相关操作,包括工作空间、构建历史和通知。

操作步骤

步骤1 登录编译构建首页。

在首页可以查看与当前用户相关的编译构建任务。

步骤2 在搜索框内输入编译构建任务名称关键字,单击“ ”快速找到指定构建任务。

显示与搜索条件匹配的任务,如图6-1所示。

图 6-1 编译构建任务

相关参数信息说明,如表6-1所示。

编译构建用户指南 6 查看编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

17

Page 21: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

表 6-1 参数说明

参数项 说明

构建状态 有三种状态:

l 灰色任务未被构建或者终止构建

l 绿色上一个构建成功

l 红色上一个构建失败

最近构建时间 最近一次执行构建任务的时间。

创建者 构建任务的创建人。

归属项目 构建任务所属的项目。单击归属项目名称可以跳转到项目下。

步骤3 (可选)单击编译构建任务所在卡片的 按钮可下载编译构建好的产品包。

说明

l 如果编译构建任务没有被构建或构建不成功,则无法下载。

l 如果构建包有多个,则会显示“下载全部”按钮,可以根据需要下载全部构建包。

l 下载的压缩包名称默认为构建任务的名称。

步骤4 单击编译构建任务名称进入“工作空间”页面。

显示构建任务归属项目、构建时间、构建结果、总构建次数、总构建时长、计费时长、日志等,如图6-2所示。

图 6-2 工作空间

编译构建用户指南 6 查看编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

18

Page 22: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

说明

l 单击“下载构建包”,可以下载最近一次构建成功的包。

如果构建包有多个,则会显示“下载全部”按钮,可以根据需要下载全部构建包。

l 单击“仓库地址”中对应链接可进入代码仓库页面。

如果在修改编译构建任务第二步“代码配置”步骤没有选择代码仓库,则没有“仓库地址”按钮。

l 查看日志信息时,单击日志窗口右上角放大按钮,可最大化日志窗口;重新单击放大按钮,可退出最大化。

步骤5 (可选)执行/禁用构建任务、删除或修改编译构建任务。

相关操作请参见5 执行、禁用编译构建任务和4 修改/删除编译构建任务。

步骤6 单击右上角“构建历史”页签。

可以查看构建历史记录,包括构建次数、构建者、任务状态、构建时间、构建时长、下载构建包以及查看构建日志,如图6-3所示。

l 单击构建序号链接,可以查看对应构建详情,即进入到“工作空间”页签。

l 单击构建记录所在行的 可以下载对应构建包。

如果构建包有多个,则会显示“下载全部”按钮,可以根据需要下载全部构建包。

l 单击构建记录所在行的 可以查看对应构建日志。

图 6-3 构建历史

说明

构建历史显示最近5次的。如果最近5次均构建失败,则显示一条最近一次成功的记录。

步骤7 单击右上角“通知”页签。

设置事件类型的通知状态,包括是否发送服务动态与邮件通知,请根据实际情况单击

(表示已开启)/ (表示未开启)进行设置,如图6-4所示。

编译构建用户指南 6 查看编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

19

Page 23: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

图 6-4 消息通知

说明

所有事件的邮件通知状态默认为 ,即默认不发送邮件通知,请根据实际需要开启。

----结束

编译构建用户指南 6 查看编译构建任务

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

20

Page 24: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

7 常见问题

关于本章

介绍编译构建中涉及的FAQ、典型场景或案例。

7.1 如何使用编译构建?

7.2 如何设置Java环境Maven类型的编译构建任务?

7.3 如何自定义Java环境Ant类型编译构建任务的构建路径?

7.4 Android环境的常见编译构建任务场景有哪些?

7.5 常见编译构建失败问题如何解决?

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

21

Page 25: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

7.1 如何使用编译构建?

编译构建(CodeCI)与代码托管无缝对接,提供云端编译构建,支持一键创建、配置和执行,实现获取代码、构建、打包等活动自动化,实时监控构建状态。

操作流程

介绍在“编译构建”中,编译构建的基本使用流程,如图7-1所示。

图 7-1 基本使用流程

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

22

Page 26: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

表 7-1 流程说明

流程 说明

登录“编译构建”首页(略)

如果已经登录“编译构建”首页,该步骤可略。

在软件开发云首页工具栏选择“服务 > 编译构建”进入。

管理构建分组任务 单击“编译构建”首页上的 进入构建任务“管理分组”对话框,可

以创建分组并为分组添加/移除编译构建任务。

新建编译构建任务

单击“编译构建”首页上的“新建任务”进行创建。

配置编译构建任务 在“编译构建”首页,搜索目标任务,单击任务所在区的 ,默认进

入配置任务“基本信息”页面,单击“下一步”依次进入“代码配置”、“构建配置”、“构建执行配置”和“构建计划配置”页面,请根据实际需要进行配置。

执行编译构建任务

在“编译构建”首页,搜索目标任务,单击任务所在区的“开始构建”启动构建。

查看编译构建任务

在“编译构建”首页,搜索目标任务,单击构建任务名称进入编译构建任务详情页面,可以查看“工作空间”、“构建历史”和“通知”(设置消息通知)。

说明

编译构建的详细操作请参见编译构建用户指南。

7.2 如何设置 Java 环境 Maven 类型的编译构建任务?

操作步骤

1. 在配置管理首页,新建代码仓库。

2. 在编译构建首页,新建Maven类型的构建任务,新建时“构建环境”选择“Java”,“构建类型”选择“Maven”,“代码仓库”选择步骤1中已创建的仓库。

3. 进入需要添加Maven库的构建任务修改页面,在“构建配置”步骤中设置Java环境Maven类型的仓库,如图7-2所示。

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

23

Page 27: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

图 7-2 构建配置

构建Maven类型的代码仓库分为三种场景,各场景配置如下:

场景一 使用 Maven 中央仓库中的库

先用浏览器查询使用库的pom文件配置方法,然后配置到pom文件中。如下,将节点值“log4j”配置到pom文件中:<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>

场景二 使用用户自己编译的库

用户使用自己的库时,需要将自己的jar包放到需要编译的项目中,然后按如下所示配置pom文件:<dependency><groupId>javawebsocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.0</version><scope>system</scope><systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/Java-WebSocket-1.3.0.jar</systemPath></dependency>

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

24

Page 28: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

其中,“groupId”、“artifactId”、“version”为使用的依赖库的组、名称和版本信息;“scope”为固定的“system”;“systemPath”为依赖库相对于项目的位置(${project.basedir}代表项目根路径)。

场景三 使用第三方库,但是 Maven 的中央仓库不提供

目前提供的库包括:Central(Maven中央仓库)、grails-core和grails-plugins(grails编译相关的库)。如果用户需要使用其他第三方库,需要向软件开发云运维团队提出申请,由运维团队评审通过后将第三方库引入;使用方法和场景一 使用Maven中央仓库中的库相同。

7.3 如何自定义 Java 环境 Ant 类型编译构建任务的构建路径?

操作步骤

1. 在编译构建首页搜索目标构建任务,单击构建任务所在区的 按钮,进入“配置任务”页面。

2. 在“构建配置”步骤页面,将“Java”环境“Ant”类型高级选项的“构建文件”输入框中设置指定构建文件路径。

– 当“Ant”类型的构建脚本文件“build.xml”位于项目的“test/test”目录下时,则构建文件路径为“test/test/build.xml”,如图7-3所示。

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

25

Page 29: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

图 7-3 构建文件路径

– 当构建脚本文件“build.xml”不在项目的根目录时,则脚本中“basedir”参

数属性设置为“../../”,如图7-4所示。

图 7-4 “basedir”参数属性

7.4 Android 环境的常见编译构建任务场景有哪些?

Android环境的常见编译构建任务场景主要有三种,分别如下:

场景一 Andriod APP Demo Gradle 编译构建

1. 新建代码仓库

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

26

Page 30: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

在软件开发云首页单击“服务”进入“配置管理”首页,单击“新建仓库”进入新建代码仓库页面,新建时“复制模板”选择“androidGradleDemo”。

2. 新建编译构建任务

在软件开发云首页单击“服务”进入“编译构建”首页,单击“新建任务”进入新建编译构建任务页面,如图7-5所示。

图 7-5 新建编译构建任务

说明

“归属项目”选择与“代码仓库”相同的项目,“构建环境”选择安卓,“代码仓库”选择步骤一已创建的仓库。

3. 执行编译构建任务,生成软件包

找到已创建好的编译构建任务,单击“开始构建”按钮,任务构建完成后单击下载按钮会生成4个构建包,如图7-6所示。

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

27

Page 31: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

图 7-6 生成软件包

说明

l “app-debug”、“app-debug-unaligned”(没有经过“zip”优化)版本包是经过默认签名的“apk”包,可以在“Android”手机上直接安装运行。

l “app-release-unsigned”版本包是没有经过签名的,需要经过客户手工签名,才能在“Android”手机上安装运行。

l “app-release”版本已经进行默认签名,可以直接在“Android”手机上安装运行。

场景二 用户 Andriod 应用程序手动签名编译构建

1. 配置工程中模块目录下的“build.Gradle”文件

版本兼容配置举例如图7-7所示。

图 7-7 版本兼容配置

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

28

Page 32: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

说明

l “minSdkVersion”指的是应用程序兼容的最低“Android”系统版本。

l “targetSdkVersion”指的是应用程序期望运行的“Android”系统版本。

l 各参数需要满足:minSdkVersion <= targetSdkVersion <= compileSdkVersion。

2. 用户新建代码仓库,上传代码

3. 创建编译构建任务,任务新建后开始构建

构建完成后单击下载按钮会生成3个构建包,如图7-8所示。

图 7-8 生成软件包

说明

l “app-debug”、“app-debug-unaligned”(没有经过“zip”优化)版本包是经过默认签名的“apk”包,可以在“Android”手机上直接安装运行。

l “app-release-unsigned”版本包是没有经过签名的,需要经过客户手工签名,才能在“Android”手机上安装运行。

4. 为“app-release-unsigned”版本包签名

手工签名,需要使用“JDK”的两个命令“keytool”(“Java”数字证书管理工具)和“jarsigner”(“Java”签名管理工具)。

“keytool”命令用来生成专用密钥文件,“jarsigner”命令用来根据“keytool”生成的专用密钥对“apk”文件进行签名。详细命令如下:

生成数字证书:keytool -genkey -v -keystore android.keystore(证书名) -alias android(证书别名) -keyalg RSA(算法) -keysize 2048(大小) -validity 10000(有效期天)

说明

生成证书过程中需要交互输入一些信息,务必记录密码,签名的时候需要使用。

签名:jarsigner -verbose -keystore android.keystore(证书名称) -signedjar android123_signed.apk(签名后的apk文件) android123.apk(未签名的apk名称) android(证书别名)

场景三 用户 Android 应用程序自动签名编译构建

在场景二步骤一中,增加如下操作:

将数字证书文件放在工程根目录中,并在“build.Gradle”文件中添加签名配置。

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

29

Page 33: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

配置举例如图7-9所示:“storeFile”配置证书文件的相对路径,“storePassword”和“keyPassword”配置证书密码,“keyAlias”配置证书别名,“signingConfig”配置签名配置路径。

图 7-9 生成软件包

这样编译完成会生成4个包,如图7-10所示,其中“app-release.apk”是签名后的包,可以直接在“Android”手机上安装运行。

图 7-10 生成软件包

7.5 常见编译构建失败问题如何解决?

背景信息

构建任务失败,查看日志显示如下类似信息:ERROR: Error cloning remote repo 'origin'ERROR: Error cloning remote repo 'origin'Finished: FAILURE"

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

30

Page 34: 用户指南 › ... · 2019-07-18 · –Gradle lGroovy –Grails Python –Python EMBEDDED –CodeSourceRy lOther –Shell ...

解决方法

请检查在构建任务中是否已设置了部署密钥(私钥)。

编译构建用户指南 7 常见问题

文档版本 09 (2017-05-05) 华为专有和保密信息版权所有 © 华为技术有限公司

31