鸿蒙开发:搭建属于自己的私服共享包平台

前言

年初,关于如何上传远程共享包,自己做了一份梳理,HarmonyOS开发:超详细介绍如何开源静态共享包,在结尾的时候,说下篇阐述一下共享包的私服搭建和使用,奈何时间一去不复返,给遗漏了,这两天,有人在群中发问,那么本篇文章,就把私服共享包从0到1的总结一下。

远程很好理解,把自己的共享包发布到公网,不仅自己可以用,任何一个想要使用的人都可以进行使用,而在实际的开发中,有些组件,有些工具库,有些共享包,是有隐私的,只可本公司或自己可用,那么私服的作用就来了,就是为了解决这一问题。

私服还有一个优势,那就是可以上传动态共享包,这是远程中心仓库所不能比的。

本文大纲如下:

1、ohpm-repo私服工具下载安装

2、上传一个静态共享包到私服

3、上传一个动态共享包到私服

4、私服平台页面简单介绍

5、项目里引入私服使用

6、相关总结

一、ohpm-repo私服工具下载安装

1、node环境配置

ohpm-repo 依赖于 node 运行,还好,鸿蒙项目也是需要Node的,基本上你若是有DevEco Studio,node环境都是存在的,如果没有,node环境还请自行配置,可以参考Node官方地址:nodejs.org/download/re...

如果你已经安装了node,并配置了环境,可以执行下命令,查看是否安装成功,如果能正常输出版本号,那么证明安装成功,否则就是失败。

2、下载 ohpm-repo 私仓工具包

下载工具地址:

developer.huawei.com/consumer/cn...

下载好之后,进行解压,得到如下目录:

把bin目录的路径配置到系统环境变量path中,执行如下命令,如果能正常输出版本号,那么证明安装成功,否则就是失败。

text 复制代码
ohpm-repo -v

3、配置IP

如果你是自己本机使用,则无需修改,如果你打算区域网内使用,那么需要修改ip地址,在conf目录下,打开config.yaml文件里进行修改。

text 复制代码
listen: localhost:8088        # 建议修改为具体的ip:port

如果有内网环境,可以直接把工具安装到内网里即可。

4、其它配置

config.yaml文件里除了ip配置之外,还有很多基本配置,比如deploy_root,安装根目录配置,本地数据存储路径配置等等:

text 复制代码
deploy_root: '' # 安装根目录 (不配置默认为 `<现有用户home目录>/ohpm-repo`),只支持绝对路径,且路径目录必须存在
db:                         # 必须用 yaml 数组形式写法
  type: filedb
  config:                   # 如果想修改存储路径且保留旧的数据,则需要把旧路径下的数据文件迁移至新路径
    path: ./db              # 本地数据存储路径,不配置默认为<deploy_root>/db;
                       

当然了,如果你没有特殊的需求,可以选择默认配置。

5、安装启动

相关配置更新之后,我们就可以进入到bin目录下,执行安装命令:

text 复制代码
ohpm-repo install

那么在deploy_root配置路径下,就会生成私服的资源文件:

ohpm-repo安装成功后,进入ohpm-repo工具包解压目录下的 bin 目录下,执行如下命令,启动 ohpm-repo:

text 复制代码
ohpm-repo start

打开我们配置好的ip路径,就可以发现,我们的服务已经起来了,之后我们就可以进行上传和下载共享包使用了,首次登录,账号名称:admin,密码:12345Qq! 。

登录之后就可以进行修改。

登录之后,可以进行很多管理,比如账号的管理,仓库管理等等。

二、上传一个静态共享包到私服

通过以上的流程,把环境搭建完毕了,我们就可以把共享包上传到这里,除了管理员上传之外,他人也可以进行注册上传。

上传分为两种方式,一种是可视化的上传,也就是在平台上直接上传,还有一种就是通过 ohpm 命令行工具。

1、基础配置

配置秘钥

利用工具 ssh-keygen 生成公、私钥,可执行以下命令,<your_key_path>是配置公钥和私钥的名称和存放路径,仅包含名称时,以当前命令行工作路径为存储目录。

text 复制代码
ssh-keygen -m PEM -t RSA -b 4096 -f <your_key_path>

执行成功之后,会生成两个文件,一个公钥,一个私钥。

配置公钥

登录 ohpm-repo 私仓管理地址,找到认证管理,把.pub文件里的内容粘贴到这里。

配置私钥

打开命令行工具,执行如下命令设置私钥路径。

text 复制代码
ohpm config set key_path <your_key_path>

执行命令,如果提示'ohpm' 不是内部或外部命令错误,那就是没有配置环境变量,找到DevEco Studio安装目录,找到tools\ohpm\bin目录,配置到环境变量中,重新打开命令工具,执行ohpm - v,如果能正常显示版本号,则环境配置成功。

记得继续执行配置私钥命令。

配置发布码

登录 ohpm-repo 私仓管理地址,单击主页右上角的个人中心,复制发布码。

将发布码配置到 .ohpmrc 文件中,可执行如下命令:

text 复制代码
ohpm config set publish_id <your_publish_id>

2、平台上直接上传

进入到仓库管理后台,点击管理三方包:

点击上传三方包:

选择上传:

选择自己开发好的静态共享包也就是.har文件进行上传即可,如何开发一个共享包,之前的文章都阐述了,这里不再赘述,切记,组织名字必须和平台的组织名一致,上传成功后,就可以在平台上查看了。

3、ohpm 命令行工具

命令方式上传也是非常的简单,第一次上传需要两步,后续一步就可以。

置私仓管理地址

text 复制代码
ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm

执行发布

text 复制代码
ohpm publish demo.har

输入密码之后,出现你的版本号,即发布成功!

私服平台,就可以查看到了。

三、上传一个动态共享包到私服

动态共享包 HSP 包不能直接发布在ohpm-repo内,需要先转化为 .tgz 包,点击工具栏图标将编译模式切换成release模式。

选中动态共享包模块的根目录,点击Build > Make Module ${libraryName} 启动构建。

在build目录下,就可以查看生成的tgz包。

执行发布命令:

如果你已经设置私仓管理地址,直接走发布即可。

text 复制代码
ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm
ohpm publish demo.tgz

四、私服平台页面简单介绍

私服平台很是简单,都是可视化操作,首页就是上传的共享包列表,这里可以执行搜索,点击查看详情。

详情页面就是文档介绍页面,这里主要是我们研发的共享包使用方式,所以,再上传一个共享包的时候,一定要文档清晰。

用户管理后台,这里也没什么好说的,用户管理就是,可以添加和删除管理员,仓库管理就是管理我们上传的共享包,认证管理就是公钥配置,组织管理就是,我们上传的组平台,操作日志,会记录我们上传的信息,比如成功或者失败。

五、项目里引入私服

需要配置该私有仓:

text 复制代码
ohpm config set registry <配置的ohpm-repo私仓服务地址>/repos/ohpm

配置好之后就可以下载使用了:

方式一:在Terminal窗口中,执行如下命令安装三方包,DevEco Studio会自动在工程的oh-package.json5中自动添加三方包依赖。

建议:在使用的模块路径下进行执行命令。

text 复制代码
ohpm install 你上传的包

方式二:在工程的oh-package.json5中设置三方包依赖,配置示例如下:

text 复制代码
"dependencies": { "上传的包": "^版本号"}

比如,我用的第二种方式:

安装之后,就会在使用的Module中,生成对应的源码文件:

然后就可以愉快的使用了~

六、相关总结

第一点:需要注意的是,自己开发的静态包也好,动态包也好,相关组织一定要和平台的保持一致:

平台组织:

自己的共享包组织:

第二点:我们在私服使用的时候,很多场景下,也会用到远程仓库的共享包,为了地址不发生错误,其实,我们可以配置两个地址:

text 复制代码
ohpm config set registry https://repo.harmonyos.com/ohpm,<配置的ohpm-repo私仓服务地址>/repos/ohpm
相关推荐
Code&Ocean18 分钟前
iOS从Matter的设备认证证书中获取VID和PID
ios·matter·chip
/**书香门第*/19 分钟前
Laya ios接入goole广告,开始接入 2
ios
枫叶丹44 小时前
【HarmonyOS之旅】HarmonyOS开发基础知识(三)
华为od·华为·华为云·harmonyos
SoraLuna9 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos
拭心11 小时前
Google 提供的 Android 端上大模型组件:MediaPipe LLM 介绍
android
AORO_BEIDOU13 小时前
单北斗+鸿蒙系统+国产芯片,遨游防爆手机自主可控“三保险”
华为·智能手机·harmonyos
带电的小王13 小时前
WhisperKit: Android 端测试 Whisper -- Android手机(Qualcomm GPU)部署音频大模型
android·智能手机·whisper·qualcomm
梦想平凡13 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
元争栈道14 小时前
webview和H5来实现的android短视频(短剧)音视频播放依赖控件
android·音视频
博览鸿蒙14 小时前
鸿蒙操作系统(HarmonyOS)的应用开发入门
华为·harmonyos