全网首发:超细节发布一个鸿蒙OHPM开源包

一、概述

OHPM(OpenHarmony Package Manager)由OpenHarmony三方库中心仓网站、命令行工具、OpenHarmony三方库中心仓仓库三个部分组成,其功能如下:

  • OpenHarmony三方库中心仓网站(website):用于检索、查看所需 OpenHarmony 三方库信息,也可管理关于 ohpm 的个人配置

  • 命令行工具(cli):OpenHarmony 三方库的包管理工具

  • OpenHarmony三方库中心仓仓库(registry):存储三方库软件及其元数据的仓库

官网传送门:ohpm.openharmony.cn 请自行完成OHPM账号注册与登录。

二、创建Static Library模块

DevEco Studio 路径: New -> Module

三、oh-package.json5

描述包名和版本等信息,此处的 name、version、description、author、main、license都是必须配置的。

json 复制代码
{
  "name": "xxx",
  "version": "0.0.1",
  "description": "致力于提供一个一致性、模块化、高性能的实用工具库。通过提供的工具函数,降低array、function、object的使用难度,减少重复性工作。",
  "main": "index.ets",
  "author": "xxx<xxx@aa.com>",
  "license": "MIT",
  "dependencies": {}
}

四、构建HAR包

构建时一定要注意,此时是发布到OHPM的开源包,Libray root下build_profile.json5文件中定义产物类型时artifactType必须缺省或original。

json 复制代码
{
  "buildOption": {
    // 此处的artifactType可以缺省或者设置为original
    "artifactType": "original"
  },
}
  1. 选中对应的Library包,点击 Build -> Make Module 'xxx'

  2. 构建成功后,产物目录:build/default/outputs/default/xxx.har

五、发布准备

1. Library root目录必须具备以下文件

  • README.md - 描述包信息

  • LICENSE文件 - 说明遵守的开源协议

  • changelog.md - 说明每个version的变化

2. OHPM 公钥

OpenHarmony 三方库中心仓 和 ohpm-cli 命令行工具的通信(查询、下载、发布),需要建立可信的安全通道,可以按如下步骤进行配置 OHPM 公钥。

shell 复制代码
ssh-keygen -m PEM -t RSA -b 4096 -f ~/.ssh_ohpm/mykey 

如果没有.ssh_ohpm目录,手动创建即可

注意:在生成key的时候会有个输入passphrase的环节,此处不允许为空,后续执行 ohpm publish 会使用到passphrase进行验证

请将公钥上传至OpenHarmony三方库中心仓【个人中心】-【认证管理】下:点击页面左上角的"新增"按钮,并将公钥文件(mykey.pub)的内容粘贴到公钥输入框中。

传送门:ohpm.openharmony.cn/#/cn/person...

3. 配置publish_id和key_path

获取publish_id:

登录OpenHarmony三方库中心仓,从 【个人中心】页面中【复制发布码】

传送门:ohpm.openharmony.cn/#/cn/person...

获取key_path:

即上面生成公钥时的文件 ~/.ssh_ohpm/mykey

两种配置方式:

  • 在Library root目录下 .ohpmrc 文件中配置
shell 复制代码
publish_id = xxxxxx
key_path = your_key_path
  • 直接在命令行中配置全局
shell 复制代码
ohpm config set publish_id your_publish_id
ohpm config set key_path your_key_path

六、发布

  1. 执行发布命令
shell 复制代码
ohpm publish build/default/outputs/default/xxx.har

执行到该处时,会将har文件中的所有Contents进行展示

  1. 输入 passphrase,与上文中配置的key_path对应的
  1. 发布成功后,进入人审环节,人审成功后即可使用

传送门:ohpm.openharmony.cn/#/cn/person...

七、发布失败的一些问题

  • 缺少LICENSE开源声明文件:ohpm ERROR: HttpCode 400 The OHPM package must contain a non-empty license file.
  • 缺少README.md说明文件:ohpm ERROR: HttpCode 400 The OHPM package must contain a non-empty readme.md file.
  • 缺少CHANGELOG.md版本说明文件:ohpm ERROR: HttpCode 400 The OHPM package must contain a non-empty changelog.md file.
相关推荐
fishmemory7sec5 分钟前
Electron 主进程与渲染进程、预加载preload.js
前端·javascript·electron
fishmemory7sec8 分钟前
Electron 使⽤ electron-builder 打包应用
前端·javascript·electron
豆豆1 小时前
为什么用PageAdmin CMS建设网站?
服务器·开发语言·前端·php·软件构建
落落落sss1 小时前
MybatisPlus
android·java·开发语言·spring·tomcat·rabbitmq·mybatis
代码敲上天.2 小时前
数据库语句优化
android·数据库·adb
twins35202 小时前
解决Vue应用中遇到路由刷新后出现 404 错误
前端·javascript·vue.js
qiyi.sky2 小时前
JavaWeb——Vue组件库Element(3/6):常见组件:Dialog对话框、Form表单(介绍、使用、实际效果)
前端·javascript·vue.js
@海~涛2 小时前
鸿蒙OpenHarmony
华为·harmonyos
煸橙干儿~~2 小时前
分析JS Crash(进程崩溃)
java·前端·javascript
安冬的码畜日常2 小时前
【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·分段比例尺