鸿蒙 构建系统:多模块管理

📅 2026/7/16 9:39:43 👁️ 阅读次数 📝 编程学习
鸿蒙 构建系统:多模块管理

一、多模块

模块是应用/元服务的基本功能单元,包含了源代码、资源文件、第三方库及应用/元服务配置文件。Hvigor支持工程多模块管理,可在build-profile.json5配置文件中增加对应模块信息,即可对模块进行工程绑定和管理,或在hvigorconfig.ts脚本中动态添加或排除某个模块。

二、多模块配置

2.1 静态配置模块

工程级build-profile.json5配置文件中的modules字段,用于记录工程下的模块信息。

字段说明
name模块名称,需与module.json5中的module.name保持一致
srcPath模块源码路径(相对工程根目录的相对路径)
targets模块的target信息,用于定制多目标构建产物

2.2 工程结构示例

工程根目录 ├── .hvigor目录 // 构建缓存文件目录 ├── hvigor-config.json5 // 构建引擎配置文件 ├── build-profile.json5 // 工程级构建配置文件 ├── hvigorfile.ts // 工程级构建动态自定义脚本 ├── module1/ │ ├── 模块源码文件 │ ├── build-profile.json5 // 模块级构建配置文件 │ └── hvigorfile.ts // 模块级构建动态自定义脚本 ├── module2/ │ ├── 模块源码文件 │ ├── build-profile.json5 │ └── hvigorfile.ts └── 其他配置文件 ├── oh-package.json5 // 三方包依赖配置文件 ├── local.properties // 本地环境配置文件 ├── obfuscation-rules.txt // 模块混淆规则配置文件 └── consumer-rules.txt // HAR/HSP模块导出混淆规则文件

2.3 静态配置示例

{ "modules": [ { "name": "module1", "srcPath": "./module1" }, { "name": "module2", "srcPath": "./module2" } ] }

2.4 动态配置模块

Hvigor支持在hvigorconfig.ts脚本中动态添加或排除某个模块,具体API及示例可参考官方HvigorConfig配置。

三、分模块编译

Hvigor支持分模块编译和打包,可通过以下两种方式进行:

方式操作
DevEco Studio菜单选中需构建的模块目录,点击Build → "Make module 'module1'"
命令行在Terminal中执行命令:hvigorw --mode module -p product=default -p module=entry@default assembleHap

命令行参数说明

参数说明
--mode module指定模块构建模式
-p product=default指定产品名称
-p module=entry@default指定模块名@target名
assembleHap构建HAP包(构建HAR使用assembleHar,构建HSP使用assembleHsp

四、其他

4.1 文件说明

文件作用
工程级build-profile.json5定义模块信息、应用信息、App构建行为
模块级build-profile.json5定义当前模块的构建信息、构建行为
hvigorfile.ts定义和扩展构建流程
oh-package.json5三方包依赖配置

4.2 分模块构建命令

产物类型命令
HAPhvigorw --mode module -p product=default -p module=entry@default assembleHap
HARhvigorw --mode module -p product=default -p module=library@default assembleHar
HSPhvigorw --mode module -p product=default -p module=library@default assembleHsp