1. 任务流程图
1.1 HAP 基础任务流程图

1.2 HSP 基础任务流程图

1.3 HAR 基础任务流程图

2. 使用命令查看任务
在 DevEco Studio 中可以通过以下命令获得任务相关的信息:
hvigorw taskTree
获取任务树时会根据工程中的模块将模块中注册的任务树以下图形式输出:

执行顺序举例说明:如图所示,assembleHap 依赖 signHap,signHap 依赖于 packageHap;则任务执行顺序则为 packageHap->signHap->assembleHap。
3. 任务详细说明
根据任务职能的不同主要分为以下几个类型的任务。
| 任务类别 | 任务说明 |
|---|---|
| Hook | hook 任务 |
| ArkTS | ArkTS 编译相关任务 |
| JS | JS 编译相关任务 |
| Resources | 资源编译、处理、链接、合并相关的任务 |
| Package | 打包相关的任务 |
| Sign | 签名相关的任务 |
| Verification | 验证项目或者依赖项设置等相关的任务 |
| Generate | 生成和转换前置文件等相关的任务 |
| Config | 生成,合并,处理配置文件等相关的任务 |
| Native | Native 编译等相关的任务 |
| Help | 查询 hvigor 帮助信息的相关任务 |
| Other | 未分类的任务 |
3.1 Hook
- assembleHap: 编译构建 hap 模块的 Hook 任务。
- assembleHsp: 编译构建 hsp 模块的 Hook 任务。
- assembleHar: 编译构建 har 模块的 Hook 任务。
- assembleApp: 编译构建 app 模块的 Hook 任务。
- assembleDevHqf: 支持增量部署的 Hook 任务。
- HotReloadBuild: HotReloadArkTS 前置 Hook 任务。
- PreviewBuild: PreviewArkTS 前置 Hook 任务。
- buildHotReloadResource: 热加载资源相关前置 Hook 任务。
- PreviewHookCompileResource: 预览时资源编译处理是否支持 Restool 增量方式编译的 Hook 任务。
- GenerateBuildProfile: 生成 BuildProfile.ets 文件的 Hook 任务。
- BuildUnitTestHook: 单元测试编译资源相关前置 Hook 任务。
- buildPreviewerResource: 预览资源相关前置 Hook 任务。
- compileNative: native 资源相关前置 Hook 任务。
- UnitTestBuild: UnitTestArkTS 前置 Hook 任务。
- test: 使用命令行执行 Local Test 的 Hook 任务。
- onDeviceTest: 使用命令行执行 Instrument Test 的 Hook 任务。
3.2 ArkTS
- CompileArkTS/BuildArkTS: 调用 loader 编译 ArkTS 源码。
- PreviewArkTS: 预览模式下,调用 loader 编译 ArkTS 源码。
- HotReloadArkTS: 热加载场景下,调用 loader 编译 ArkTS 源码。
- OhosTestCompileArkTS/OhosTestBuildArkTS: ohos 测试场景下,调用 loader 编译 ArkTS 源码。
- HarCompileArkTS/HarBuildArkTS: 构建 HAR 包场景下,调用 loader 编译 ArkTS 源码。
- UnitTestArkTS: 单元测试场景下,调用 loader 编译 ArkTS 源码。
3.3 JS
- CompileJS/BuildJS: 调用 loader 编译 js 源码。
- OhosTestCompileJS/OhosTestCompileJS: ohos 测试场景下,调用 loader 编译 js 源码。
3.4 Resources
- ProcessResource: 处理和生成用文件方式编译资源的中间文件。
- PreviewProcessResource: 预览场景下,处理和生成用文件方式编译资源的中间文件。
- CompileResource: 调用 restool 编译资源。
- PreviewCompileResource: 预览场景下,调用 restool 编译资源。
- ProcessLibs: 收集 hap 和 har 依赖中的.so 文件。
3.5 Package
- PackageHap: 调用打包工具打 hap 包。
- PackageHar: 调用打包工具打 har 包。
- PackageHsp: 调用打包工具打 hsp 包。
- PackageApp: 调用打包工具打 app 包。
- PackageHqf: 调用打包工具打增量包。
- PackageSharedHar: 调用打包工具打 hsp 模块的 har 包。
- PackageSharedTgz: 调用打包工具将 hsp 模块生成的未签名 hap 和 har 包打包成 tgz 包。
- PackageSignHar: 调用打包工具打带签名的 har 包,当前仅在 daemon 模式下生效。
3.6 Sign
- SignHap: 调用签名工具给 hap 包签名。
- SignHsp: 调用签名工具给 hsp 包签名。
- SignApp: 调用签名工具给 app 包签名。
- SignHqf: 调用签名工具给增量包签名。
- SignModuleRemoteHsp: 调用签名工具给模块级 ohpm 仓上的 hsp 包签名。
- SignProjectRemoteHsp: 调用签名工具给工程级 ohpm 仓上的 hsp 包签名。
3.7 Verification
- PreBuild: 模块级预检查任务。
- PreBuildApp: 工程级预检查任务。
- PreCheckSyscap: syscap 相关配置预检查任务。
3.8 Generate
- GenerateLoaderJson: 生成 loader.json 文件。
- GenerateMetadata: 生成 metadata.json 文件。
- SyscapTransform: syscap 转换任务。
- MakePackInfo: 生成模块级别的 pack.info。
- MakeProjectPackInfo: 生成工程级别的 pack.info。
- ProcessPackageJson: 对 package.json 文件进行处理。
- ProcessOHPackageJson: 对 oh_package.json5 文件进行处理。
- GeneratePackRes: 生成 pack.res 文件。
- CreateBuildProfile: 生成 hap/hsp 的 BuildProfile.ets 文件。
- CreateHarBuildProfile: 生成 har 的 BuildProfile.ets 文件。
- PrepareQuickfix: 通过校验获取增量文件并输出到 quiekfix.json 文件中。
3.9 Config
- ProcessProfile: 处理 module.json5 文件。
- PrepareSharedHarResource: 生成打包 shared library 的 package.json 和 module.json。
- UnitTestProcessProfile: UnitTestBuild 场景处理构建中间产物 module.json 文件。
- MergeProfile: 合并 module.json5 文件。
- PreviewUpdateAssets: 预览模式下,Stage 模型在编译预览代码前更新前置任务生成的 module.json 和 main_pages.json 文件。
3.10 Native
- BuildNativeWithNinja: 将 native 代码编译成 so 文件。
- BuildNativeWithCmake: 用 CMake 编译 CPP 源码。
3.11 Help
- tasks: 查看 hvigor 的全部任务及详情。
- taskTree: 查看当前工程涉及的任务树。
3.12 Other
- ReplaceUnitTestIndexFile: 单元测试替换入口文件。
- ReplacePreviewerPage: 接受预览器提供的参数替换页面文件中的参数。
- OhosTestCopyMockConfigJson: 测试框架执行 mock 时将 mock-config.json 拷贝到测试包中。
- clean: 清理生成的 Build 目录。
- collectCoverage: 基于仪表打点数据生成覆盖率统计报表。
3.13 Sync
- init: 初始化工程。
3.14 Init
该任务类型与 Sync 下的 init 不同,该过程中无具体任务,主要负责执行调用 hvigor 前的准备工作。


