"Module",在弹出的对话框中选择"StaticLibrary"类型。为模块命名时需要遵循一定规范:建议全部使用小写字...">
当前位置:首页 > 技术 > 正文内容

鸿蒙应用开发:第三方库发布到ohpm私有仓库完整指南

访客 技术 2026年6月26日 1

在鸿蒙应用开发过程中,将自己封装的功能模块发布到私有仓库是提升开发效率的重要手段。本文将详细介绍从创建到发布第三方库的完整流程,帮助开发者快速掌握这一技能。

一、创建第三方库工程

在DevEco Studio中创建用于发布的第三方库模块。右键点击项目名称,选择"New"->"Module",在弹出的对话框中选择"Static Library"类型。

为模块命名时需要遵循一定规范:建议全部使用小写字母,避免使用大写字母和特殊字符,确保与其他生态兼容。

创建完成后,项目结构中会新增一个独立的模块目录,该目录将包含我们开发的所有公共组件和工具方法。

二、配置模块元信息

在新建的库模块目录中找到oh-package.json5文件,这是ohpm包管理的核心配置文件,需要填写以下关键字段:

  • name:包名称,推荐使用纯小写字母加连字符的命名方式
  • version:版本号,遵循语义化版本规范
  • description:简短描述包的功能定位
  • main:模块入口文件路径
  • author:作者信息
  • license:开源许可证类型

三、编写必要文档

除了代码本身,还需要准备三个重要的文档文件:

1. README.md
说明包的安装方式、API使用方法和功能特性,帮助使用者快速上手。

2. CHANGELOG.md
记录每个版本的重要变更,便于版本追溯和问题排查。

3. LICENSE
必须与oh-package.json5中声明的license保持一致。例如配置文件中填写"Apache-2.0",则需要包含对应的许可证文本内容。

四、编译打包

完成代码开发和文档编写后,点击DevEco Studio顶部菜单"Build"->"Build Haps",执行编译打包操作。

编译成功后,在模块目录下的build/outputs目录中会生成HAR格式的打包文件,这就是需要发布到仓库的最终产物。

五、本地验证

正式发布前建议在本地项目中进行验证。在项目根目录的oh-package.json5中添加依赖:

{
  "dependencies": {
    "your-package-name": "file:./path/to/your/library"
  }
}

执行ohpm install后,即可在项目代码中正常引用该库的各项功能。

六、配置认证信息

登录ohpm私有仓库平台,进入个人中心页面。首先需要完成认证管理配置:

步骤1:生成密钥对
打开终端执行以下命令生成RSA密钥对:

ssh-keygen -m PEM -t RSA -b 4096 -f ~/ohpm_keys/id_rsa_2024

执行过程中需要设置密钥密码,请妥善保存该密码,后续步骤会用到。生成的私钥文件保存在~/ohpm_keys/目录下。

步骤2:配置公钥
打开生成的公钥文件(带.pub后缀),将文件内容完整复制到ohpm平台的公钥输入框中,并填写便于识别的标题。

步骤3:配置本地认证
在DevEco Studio的Terminal中执行以下命令配置私钥路径:

ohpm config set key_path ~/ohpm_keys/id_rsa_2024

步骤4:配置发布标识
在ohpm个人中心获取发布码后,执行以下命令完成配置:

ohpm config set publish_id PUBLISH_CODE_HERE

将PUBLISH_CODE_HERE替换为实际的发布码内容。

七、正式发布

完成上述所有配置后,执行发布命令:

ohpm publish ./build/outputs/default/your-library.har

执行过程中会提示输入之前设置的密钥密码。发布成功后,平台会自动进入审核流程,通常在工作日内审核速度较快。审核通过后,即可在ohpm仓库中看到自己发布的第三方库。

通过以上步骤,就完成了从开发到发布的完整流程。开发者可以根据实际需要封装更多通用功能,持续丰富私有仓库的组件生态。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。