做开源鸿蒙模块化开发,module.json5和build-profile.json5从来都不是“各干各的”,俩文件得配合着来,才能完成“定义模块→构建模块→生成可运行包”的完整流程。新手只要搞懂它俩的联动逻辑,就能少踩很多构建坑,开发效率直接拉满。不用深扒底层,重点理解“谁负责定义、谁负责执行”就好。
  先总结下它俩的核心分工:

- module.json5:负责“定义模块属性”——告诉系统和构建工具,这个模块的身份、能力、运行要求(比如是主模块还是功能模块、支持哪些设备、需要啥权限);

- build-profile.json5:负责“执行构建操作”——照着module.json5的定义,设置好构建参数,把模块代码打包成能直接运行的HAP包(比如根据module.json5里的设备类型,专门构建手机版的产物)。

  几个最常见的联动场景:

场景1:设备类型联动。要是在module.json5里设置了deviceTypes: ["phone", "wearable"](支持手机和穿戴设备),那在build-profile.json5的targets里,就能针对不同设备类型设置不同的构建目标——比如单独做一个穿戴设备版本的HAP包,构建工具会自动匹配module.json5的配置,不会生成不兼容的产物。

场景2:模块类型联动。要是在module.json5里把模块类型设为feature(功能模块),build-profile.json5会自动识别,构建的时候不会生成独立的入口HAP包,只会生成能被主模块(entry)依赖的模块包——这也是开源鸿蒙模块化解耦的关键。

场景3:配置校验联动。要是在module.json5里设置了较高的SDK版本依赖,可在build-profile.json5里把compileSdkVersion设低了,构建的时候会直接报错,提醒咱们统一配置——这样就能避免因版本不匹配,导致模块没法运行的问题。

  几个实操避坑重点:

1. 两个文件的配置必须“对齐”:比如module.json5支持的设备类型,不能超出build-profile.json5里设置的设备范围,不然会报错;

2. 修改模块属性(比如模块类型、设备类型)后,一定要同步检查build-profile.json5的构建配置,别忘同步修改,不然会联动失败;

3. 新手初期不用自己从零写配置,直接用DevEco Studio自动生成的模板就好,核心配置项别随意删除(比如module.json5的module节点、build-profile.json5的default目标),修改参数就够了。

  module.json5是“定义者”,负责定好规则;build-profile.json5是“执行者”,负责照着规则把模块做出来,俩文件配合好,才能完成开源鸿蒙模块的构建和部署。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐