当然可以!以下是【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 模块

  1. 在 DevEco Studio 中,点击 File > New > Module
  2. 选择模块类型为 Harmony Library
  3. 填写模块名称(如 commonlib
  4. 选择语言(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 中:

  1. 点击菜单 Build > Make Module 'commonlib'
  2. 构建完成后,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 模块模板项目,我可以直接打包或提供代码结构,你是否需要?