HAP依赖HAR A,HAR A依赖HAR B,HAP能否调用HAR B提供的接口?如果不支持间接依赖HAR,原因是什么?

​HAP依赖HAR A,HAR A依赖HAR B,HAP能否调用HAR B提供的接口?如果不支持间接依赖HAR,这么设计的原因是什么?

HarmonyOS
2024-03-15 18:36:35
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
橱柜里的蛙

不支持传递依赖。

间接依赖的版本是不可控的,如果代码里使用到某个版本的间接依赖,不同时间安装的依赖可能版本不一致,程序运行可能出现意想不到的错误。举例说明:依赖关系:project->A(1.0.0)->B(^1.0.0)->C (latest)

在dependencies只声明了A,但是工程中import了B和C。而B和C的版本是不可控的,如果C的开发者发布了一个2.0.0的版本,下次安装依赖时,可能会安装C的2.0.0的版本。然后就有可能出现一些问题,例如:在代码没有任何改动的情况下,程序运行却出现报错,不同时间不同PC上构建的应用运行表现不一致等。

所以ohpm为了解决幽灵依赖的问题,设计了一个特殊的存储结构,从技术上进行限制、不允许引用间接依赖,从而避免出现幽灵依赖问题。在上面例子中表现就是:代码里只能引用A,引用B或C就会编译报错,提醒用户修改依赖配置。

分享
微博
QQ
微信
回复
2024-03-17 18:58:34
相关问题
HarmonyOS har依赖问题
641浏览 • 1回复 待解决
是否允许HAR循环依赖
1932浏览 • 1回复 待解决
HAR 是否可以依赖 HSP?
240浏览 • 1回复 待解决
har 包多层依赖打包问题咨询
195浏览 • 1回复 待解决
HAPHAR区别是什么
1975浏览 • 1回复 待解决
如何处理HAR之间互相依赖
2296浏览 • 1回复 待解决
HarmonyOS HAR HAP包问题
114浏览 • 1回复 待解决
HarmonyOS har依赖so库有冲突是如何解决
311浏览 • 1回复 待解决
没有依赖关系HAR如何做页面跳转?
354浏览 • 1回复 待解决
HAPHAR什么区别?
716浏览 • 1回复 待解决
HARHAP区别有哪些
2277浏览 • 1回复 待解决
怎么理解HARHAP、App关系
1931浏览 • 1回复 待解决
HarmonyOS 多module同时依赖同一个har
655浏览 • 1回复 待解决
怎么理解HARHAP、APP之间关系
1743浏览 • 1回复 待解决
har跳转har自己页面。
1727浏览 • 1回复 待解决