当前位置: 首页 > news >正文

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

一、多模块

模块是应用/元服务的基本功能单元,包含了源代码、资源文件、第三方库及应用/元服务配置文件。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
http://www.jsqmd.com/news/1199227/

相关文章:

  • 2026 南宁邕宁区老工艺黄金回收 易奢福老式金饰专业评估价值 - ys韩
  • Witty-Insight技能分析:AI Agent工具使用统计与性能评估
  • C++ string容器深度解析:从RAII到移动语义的实战指南
  • sshd配置实战:从基础安全到高级调优
  • C++时延优化实战:从内存管理到无锁编程的确定性性能提升
  • 告别性能瓶颈:如何用开源工具永久掌控Windows安全防护
  • 大模型RAG架构下的信源选择机制:从检索到引用的六阶段解析
  • 嵌入式机器学习 - 学习笔记1.0.1 - 为什么机器学习开始跑进微控制器?
  • [简化版 GAMES 104] 现代游戏引擎 01:从代码到世界:现代游戏引擎的恢弘史诗
  • 从7z到ZIP/RAR:为何数据恢复性应成为压缩格式选型的关键考量
  • Java AI编码工具实战评测:脚手架生成能力深度对比
  • robots.txt 完全指南:从入门到精通
  • CVE-2020-8840:从JNDI注入看Jackson-databind黑名单攻防演进
  • 2026靠谱铜覆扁钢厂家怎么选?认准资质齐全的源头大厂 - 商业新知
  • 2026深圳劳力士回收靠谱商家盘点:水贝S+级机构724小时上门,闲置名表快速变现 - 名奢变现站
  • 中小企业如何真正落地 AI?4 个实践经验,少走很多弯路
  • 从零到一:STM32工程创建中启动文件的精准匹配与配置实战
  • 新E选的烤火罩会不会显得特别笨重、松松垮垮的?
  • pdf压缩免费版哪个好?5款工具横评实测,压缩效果一目了然 - 博客万
  • 线上投票评选怎么做,云众评选 3‑5 分钟快速搭建投票活动 - 微信投票小程序
  • 【架构剖析】图书管理系统——核心模块与数据流转设计详解
  • 换脸保特征:用于ITS中行人隐私的双用途管道
  • 如何快速构建现代化阿语门户:openEuler opendesign自定义UI组件实战指南
  • LT3762同步升压控制器驱动大电流LED的设计与实践
  • Windows系统下Elasticsearch的完整部署与安全配置实战
  • AI 赋能下的数字电子沙盘:智能化实时化与沉浸式交互的新时代 - 优企甄选
  • Keil调试技巧
  • 实战指南:基于MQTT协议与阿里云平台实现设备OTA升级
  • 北京东城区闲置黄金变现渠道,专业仪器当面检测,称重全程可见 - 全国二奢机构参考
  • 东营鑫宸黄金奢品回收,六店未来科技,穿越2088来收金 - 清奢黄金上门回收