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

前言

年初,关于如何上传远程共享包,自己做了一份梳理,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
相关推荐
雨白2 小时前
Jetpack系列(二):Lifecycle与LiveData结合,打造响应式UI
android·android jetpack
幽蓝计划3 小时前
HarmonyOS NEXT仓颉开发语言实战案例:动态广场
华为·harmonyos
kk爱闹3 小时前
【挑战14天学完python和pytorch】- day01
android·pytorch·python
每次的天空5 小时前
Android-自定义View的实战学习总结
android·学习·kotlin·音视频
恋猫de小郭5 小时前
Flutter Widget Preview 功能已合并到 master,提前在体验毛坯的预览支持
android·flutter·ios
断剑重铸之日6 小时前
Android自定义相机开发(类似OCR扫描相机)
android
随心最为安6 小时前
Android Library Maven 发布完整流程指南
android
岁月玲珑6 小时前
【使用Android Studio调试手机app时候手机老掉线问题】
android·ide·android studio
万少9 小时前
第五款 HarmonyOS 上架作品 奇趣故事匣 来了
前端·harmonyos·客户端
幽蓝计划10 小时前
HarmonyOS NEXT仓颉开发语言实战案例:电影App
华为·harmonyos