鸿蒙 构建系统:构建任务(三)

📅 2026/7/12 19:15:37 👁️ 阅读次数 📝 编程学习
鸿蒙 构建系统:构建任务(三)

在鸿蒙应用开发中,了解构建任务有助于理解编译打包的完整流程。

一、HAP基础任务流程

HAP构建任务的主要流程:依赖处理 → 资源编译 → ArkTS编译 → 打包 → 签名。

二、HSP基础任务流程

HSP构建任务的主要流程与HAP类似,但涉及动态共享包的独立打包流程。

三、HAR基础任务流程

HAR构建任务的主要流程:资源处理 → ArkTS编译 → HAR打包。

四、使用命令查看任务

在DevEco Studio中可以通过以下命令获得任务相关的信息:

命令说明
hvigorw taskTree获取任务树,根据工程中的模块,将模块中注册的任务以树形形式输出

执行顺序示例

assembleHap 依赖 CollectDebugSymbol CollectDebugSymbol 依赖于 PackageHap → 执行顺序:PackageHap → CollectDebugSymbol → assembleHap

五、任务说明

根据任务职能的不同,主要分为以下几种任务类型:

任务类别任务说明
HookHook任务
ArkTSArkTS编译相关任务
JSJS编译相关任务
Resources资源编译、处理、链接、合并相关的任务
Package打包相关的任务
Sign签名相关的任务
Verification验证项目或者依赖项设置等相关的任务
Generate生成和转换前置文件等相关的任务
Config生成、合并、处理配置文件等相关的任务
NativeNative编译等相关的任务
Help查询hvigor帮助信息的相关任务
Other未分类的任务

六、各任务类别

6.1 Hook

任务说明
assembleHap编译构建hap模块的Hook任务
assembleHsp编译构建hsp模块的Hook任务
assembleHar编译构建har模块的Hook任务
assembleApp编译构建app模块的Hook任务
assembleDevHqf支持增量部署的Hook任务
HotReloadBuildHotReloadArkTS前置Hook任务
PreviewBuildPreviewArkTS前置Hook任务
buildHotReloadResource热加载资源相关前置Hook任务
GenerateBuildProfile生成BuildProfile.ets文件的Hook任务
compileNativenative资源相关前置Hook任务

6.2 ArkTS(ArkTS编译相关)

任务说明
CompileArkTS/BuildArkTS通过rollup调用loader编译ArkTS源码
PreviewArkTS预览模式下编译ArkTS源码
HotReloadArkTS热加载场景下编译ArkTS源码
OhosTestCompileArkTS/OhosTestBuildArkTSohos测试场景下编译ArkTS源码
HarCompileArkTS/HarBuildArkTS构建HAR包场景下编译ArkTS源码
UnitTestArkTS单元测试场景下编译ArkTS源码

6.3 JS(JS编译相关)

任务说明
CompileJS/BuildJS调用loader编译js源码
OhosTestCompileJS/OhosTestBuildJSohos测试场景下编译js源码

6.4 Resources(资源编译相关)

任务说明
ProcessResource处理和生成用文件方式编译资源的中间文件
PreviewProcessResource预览场景下处理和生成资源中间文件
CompileResource调用restool编译资源
PreviewCompileResource预览场景下调用restool编译资源
ProcessLibs收集hap和har依赖中的.so文件

6.5 Package(打包相关)

任务说明
PackageHap调用打包工具打hap包
PackageHar调用打包工具打har包
PackageHsp调用打包工具打hsp包
PackageApp调用打包工具打app包
PackageHqf调用打包工具打增量包
PackageSharedHar调用打包工具打hsp模块的har包
PackageSignHar调用打包工具打带签名的har包(daemon模式下生效)

6.6 Sign(签名相关)

任务说明
SignHap调用签名工具给hap包签名
SignHsp调用签名工具给hsp包签名
SignApp调用签名工具给app包签名
SignHqf调用签名工具给增量包签名

6.7 Verification(验证相关)

任务说明
PreBuild模块级预检查任务
PreBuildApp工程级预检查任务
PreCheckSyscapsyscap相关配置预检查任务

6.8 Generate(生成相关)

任务说明
GenerateLoaderJson生成loader.json文件
GenerateMetadata生成metadata.json文件
SyscapTransformsyscap转换任务
MakePackInfo生成模块级别的pack.info
MakeProjectPackInfo生成工程级别的pack.info
CreateBuildProfile生成hap/hsp的BuildProfile.ets文件
CreateHarBuildProfile生成har的BuildProfile.ets文件

6.9 Config(配置相关)

任务说明
ProcessProfile处理module.json5文件
MergeProfile合并module.json5文件

6.10 Native(Native编译相关)

任务说明
BuildNativeWithNinja将native代码编译成so文件
BuildNativeWithCmake用CMake编译CPP源码

6.11 Help(帮助相关)

任务说明
tasks查看hvigor的全部任务及详情
taskTree查看当前工程涉及的任务树

6.12 Other(其他任务)

任务说明
ReplaceUnitTestIndexFile单元测试替换入口文件
clean清理生成的Build目录
collectCoverage基于仪表打点数据生成覆盖率统计报表

任务执行流程

依赖处理 → 资源编译(Resources) → ArkTS/JS编译 → 打包(Package) → 签名(Sign)