当然可以!以下是【HarmonyOS Next之旅】DevEco Studio 使用指南(第三十八篇)——构建 HAR 的完整内容:
🌟【HarmonyOS Next之旅】DevEco Studio使用指南(三十八) – 构建 HAR
在 HarmonyOS Next 的开发中,我们常常会将可复用的模块封装成 HAR(Harmony Archive) 包,从而在多个项目之间共享业务逻辑、UI 组件、工具类、第三方 SDK 封装等。本篇将带你系统了解如何创建、构建并发布 HAR 包,为组件化开发打下坚实基础。
📌 一、什么是 HAR?
HAR(Harmony Archive)是 HarmonyOS 中的一种 轻量级模块封装格式,相当于 Android 的 .aar
,用于将模块封装成一个可复用的库。
- 文件扩展名:
.har
- 使用场景:
- UI 组件封装(如通用对话框、Banner)
- 网络库、加密库、工具类库
- 第三方 SDK 封装包
🏗️ 二、如何构建 HAR
步骤 1:创建 Library 模块
- 在 DevEco Studio 中,点击
File > New > Module
- 选择模块类型为 Harmony Library
- 填写模块名称(如
commonlib
) - 选择语言(Java / TypeScript / C++)及平台(Stage Model)
📁 目录结构示例:
project-root/
├── entry/ # 主应用模块
├── commonlib/ # 新建的 HAR 模块
│ ├── src/main/
│ │ ├── ets/ # JavaScript/ETS 代码
│ │ ├── resources/ # 公共资源文件
│ │ └── module.json5
│ └── build.gradle
步骤 2:编辑 module.json5
配置
确保模块类型为 library
,例如:
{
"module": {
"name": "commonlib",
"type": "library",
"srcEntry": "./src/main/ets",
"description": "通用功能模块库"
}
}
步骤 3:编写代码逻辑
例如一个通用工具类:
// src/main/ets/com/example/util/Logger.ts
export class Logger {
static log(msg: string) {
console.info("[Logger]", msg);
}
}
步骤 4:构建 HAR 包
在 DevEco Studio 中:
- 点击菜单
Build > Make Module 'commonlib'
- 构建完成后,HAR 包输出在:
commonlib/build/default/outputs/har/commonlib.har
你也可以使用命令行构建:
./gradlew :commonlib:assembleHar
步骤 5:主模块中引用 HAR
在 entry/build.gradle
中添加依赖:
ohos {
...
}
dependencies {
implementation project(':commonlib')
}
然后在代码中直接调用:
import { Logger } from '@ohos/commonlib/com/example/util/Logger'
Logger.log("你好,HarmonyOS!")
📦 三、发布 HAR 到本地 / 私有仓库(可选)
如果你想在多个项目中复用该 HAR 包,可以将其发布到本地 Maven 仓库或私有 Nexus 服务器。
publishing {
publications {
mavenHar(MavenPublication) {
groupId = 'com.example'
artifactId = 'commonlib'
version = '1.0.0'
artifact file('build/default/outputs/har/commonlib.har')
}
}
repositories {
maven {
url = uri("${rootProject.projectDir}/repo")
}
}
}
发布命令:
./gradlew publish
🧪 四、调试与注意事项
问题 | 解决方案 |
---|---|
无法识别 HAR 资源路径 | 确保 module.json5 设置正确 srcEntry 路径 |
无法导入模块类名 | 检查是否在 src/main/ets/ 目录结构下 |
主模块访问不到 | 确保已在 build.gradle 正确添加依赖 |
✅ 五、总结
步骤 | 说明 |
---|---|
创建 HAR 模块 | 使用 DevEco Studio 新建 Harmony Library |
编写可复用逻辑 | 公共方法、组件、资源等 |
构建 HAR | 在 IDE 或命令行打包成 .har 文件 |
引入与调用 | 在主模块依赖并使用 |
📘 后续推荐阅读
- 【三十九】→ HAR 依赖版本管理与自动发布方案
- 【四十】→ 如何使用 HAR 封装第三方 SDK 并适配多模块
- 【四十一】→ HAR + ArkTS 多语言混合使用技巧
如果你需要我为你生成一个完整的 HAR 模块模板项目,我可以直接打包或提供代码结构,你是否需要?
发表回复