HarmonyOS 鸿蒙Next中想要将功能封装成一个包,可以被多个不同的项目引用
HarmonyOS 鸿蒙Next中想要将功能封装成一个包,可以被多个不同的项目引用 想要将功能封装成一个包,可以被多个不同的项目引用,应该如何操作
【解决方案】:有两种方案,一个是hsp一个是har,这两个都可以实现,具体可以参考文档
har方式:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-har
hsp方式:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hsp
更多关于HarmonyOS 鸿蒙Next中想要将功能封装成一个包,可以被多个不同的项目引用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
尊敬的开发者您好,可以通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码,详见:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/har-package
har包
在HarmonyOS Next中,可将功能封装为HAR(Harmony Archive)或HSP(Harmony Shared Package)。HAR是静态共享包,编译时打包到宿主应用;HSP是动态共享包,运行时复用。创建模块时选择“Static Library”或“Shared Library”,在oh-package.json5中配置导出接口,其他项目通过ohpm install引入。
在HarmonyOS Next中封装功能包供多项目引用
在HarmonyOS Next中,将功能封装成包供多项目引用,主要采用HAR(Harmony Archive)或HSP(Harmony Shared Package)两种方式。
1. HAR(静态共享包)
- 适用于纯代码、资源、配置文件的封装,编译时打包到引用项目中。
- 创建:在DevEco Studio中新建Module,选择“Static Library”。
- 导出:在模块的
index.ets文件中声明要暴露的接口、类等。 - 引用:在
oh-package.json5中通过dependencies字段配置本地路径(如"file:../mylib")或发布到ohpm仓库后引用。
2. HSP(动态共享包)
- 适用于运行时动态加载,多个应用或模块共享同一份代码实例,减少包体积。
- 创建:新建Module时选择“Shared Library”。
- 导出:同HAR,在
index.ets中导出。 - 引用:在
oh-package.json5中配置依赖,或通过动态引用方式在运行时加载。
关键操作步骤
- 在需要复用的模块根目录下,创建
index.ets文件,将对外暴露的类、函数、组件统一导出。 - 在目标项目的
oh-package.json5的dependencies字段中增加依赖声明:- 本地引用:
"@my/package": "file:../path-to-package" - 远程引用:
"@my/package": "1.0.0"(需先发布到ohpm仓库)
- 本地引用:
- 在目标代码中通过
import { MyClass } from '@my/package'导入使用。
注意点
- HAR包中的资源文件会随主包合并,HSP则独立存在。
- 多项目引用同一HSP时,需确保设备上已安装该HSP包(通常由主应用或系统预置)。
- 若涉及跨应用共享(如多个独立应用共用包),需使用HSP并配置合适的权限及安装策略。

