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

鸿蒙 构建系统:构建任务(三)
在鸿蒙应用开发中了解构建任务有助于理解编译打包的完整流程。一、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 ArkTSArkTS编译相关任务说明CompileArkTS/BuildArkTS通过rollup调用loader编译ArkTS源码PreviewArkTS预览模式下编译ArkTS源码HotReloadArkTS热加载场景下编译ArkTS源码OhosTestCompileArkTS/OhosTestBuildArkTSohos测试场景下编译ArkTS源码HarCompileArkTS/HarBuildArkTS构建HAR包场景下编译ArkTS源码UnitTestArkTS单元测试场景下编译ArkTS源码6.3 JSJS编译相关任务说明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.infoMakeProjectPackInfo生成工程级别的pack.infoCreateBuildProfile生成hap/hsp的BuildProfile.ets文件CreateHarBuildProfile生成har的BuildProfile.ets文件6.9 Config配置相关任务说明ProcessProfile处理module.json5文件MergeProfile合并module.json5文件6.10 NativeNative编译相关任务说明BuildNativeWithNinja将native代码编译成so文件BuildNativeWithCmake用CMake编译CPP源码6.11 Help帮助相关任务说明tasks查看hvigor的全部任务及详情taskTree查看当前工程涉及的任务树6.12 Other其他任务任务说明ReplaceUnitTestIndexFile单元测试替换入口文件clean清理生成的Build目录collectCoverage基于仪表打点数据生成覆盖率统计报表任务执行流程依赖处理 → 资源编译(Resources) → ArkTS/JS编译 → 打包(Package) → 签名(Sign)