HarmonyOS 不同的module依赖不同版本的har包,在运行时存在几份实例?

我定义了一个单例,我在A模块注册了一个,在B模块读取。

如果版本相同,B能读取到,版本不同读取不到

所以结论:

版本号是否相同都存在多份?

版本号不同消息不互通?运行时存在多份实例?

版本号相同消息互通?运行时存在一份实例?

阅读 483
1 个回答

不同module依赖不同版本的har,HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝。不同版本的包是独立的。

具体参考应用程序包指南:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-package-overview-0000001820999513-V5

1.依赖同版本的har,不会打包多份,依赖关系如下:

hap–har1–har2–har3

–har4–har3

2.依赖不同版本的har,依赖关系如下:

hap–har1–har2–har3V1

–har4–har3V2

打包hap时,hap中会把V1和V2两个版本的har3都打进去。

可以在项目级别的oh-package.json5(即项目根目录下的oh-package.json5)文件中添加overrides配置,方便将依赖树中的依赖替换为另一个版本。替换的版本既可以是一个具体的版本号,也可以是一个模糊版本,还可以是本地存在的HAR包或源码目录。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进