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

程序员一鸣
• 阅读 6

前言

本文基于Api12

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

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

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

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

本文大纲如下:

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

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

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

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

5、项目里引入私服使用

6、相关总结

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

1、node环境配置

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

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

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

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

下载工具地址:

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

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

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

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

ohpm-repo -v

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

3、配置IP

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

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

listen: localhost:8088        # 建议修改为具体的ip:port

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

4、其它配置

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

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

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

5、安装启动

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

ohpm-repo install

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

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

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

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

ohpm-repo start

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

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

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

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

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

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

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

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

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

1、基础配置

配置秘钥

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

ssh-keygen -m PEM -t RSA -b 4096 -f <your_key_path>

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

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

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

配置公钥

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

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

配置私钥

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

ohpm config set key_path <your_key_path>

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

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

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

配置发布码

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

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

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

ohpm config set publish_id <your_publish_id>

2、平台上直接上传

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

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

点击上传三方包:

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

选择上传:

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

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

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

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

3、ohpm 命令行工具

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

置私仓管理地址

ohpm config set publish_registry <ohpm-repo私仓管理地址>/repos/ohpm

执行发布

ohpm publish demo.har

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

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

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

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

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

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

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

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

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

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

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

执行发布命令:

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

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

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

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

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

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

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

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

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

五、项目里引入私服

需要配置该私有仓:

ohpm config set registry <配置的ohpm-repo私仓服务地址>/repos/ohpm

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

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

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

ohpm install 你上传的包

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

"dependencies": { "上传的包": "^版本号"}

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

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

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

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

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

六、相关总结

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

平台组织:

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

自己的共享包组织:

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

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

ohpm config set registry https://repo.harmonyos.com/ohpm,<配置的ohpm-repo私仓服务地址>/repos/ohpm
点赞
收藏
评论区
推荐文章
九章 九章
4年前
Android依赖管理与私服搭建
在Android开发中,一个项目需要依赖许多的库,我们自己写的,第三方的等等,这篇文件介绍的就是自己搭建私服,创建自己的仓库,进行对我们自己写的库依赖管理。本文是在macbookpro环境上搭建的,其它操作系统操作方式大致一样的。如果有不一样的地,可以参考官方文档Android中引入依赖的几种方法一直接引
浩浩 浩浩
4年前
【Flutter实战】包管理
2.3包管理在软件开发中,很多时候有一些公共的库或SDK可能会被很多项目用到,因此,将这些代码单独抽到一个独立模块,然后哪个项目需要使用时再直接集成这个模块,便可大大提高开发效率。很多编程语言或开发工具都支持这种“模块共享”机制,如Java语言中这种独立模块会被打成一个jar包,Android中的aar包,Web开发中的npm包等。为了方便表述,我们将
happlyfox happlyfox
4年前
在vscode中go编码发生的问题整理
关于我引言使用VsCode进行Go程序开发,我们肯定会碰到一些问题,这些问题有些是IDE的配置问题,有些是下载包的版本不一致问题,本文主要针对在开发过程中碰到的问题做一个简单的回顾和整理。前期准备,必看在进行问题纠错前,先确保自己正确下载了golang的官方工具集gotool,如果不确定,就跟着我的步骤操作一遍,可能操作后,你的问题就解决了。1、配置go
Stella981 Stella981
3年前
GitHub终于可以免费创建私有代码库了
!(https://oscimg.oschina.net/oscnet/0b6f0c9a1faec953273b1be6a8dd96203b6.jpg)相信应该很多朋友都在使用GitHub。但是有一些自己的文件不想被别人看到,于是想建一个私有库吧,以前可那要收费的所以有些朋友就自己搞一台虚机,搭建一个Git服务器(带宽还不受
Wesley13 Wesley13
3年前
Java package 包的命名规范。
Java的包名都有小写单词组成,类名首字母大写;包的路径符合所开发的系统模块的定义,比如生产对生产,物资对物资,基础类对基础类。以便看了包名就明白是哪个模块,从而直接到对应包里找相应的实现。   由于Java面向对象的特性,每名Java开发人员都可以编写属于自己的JavaPackage,为了保障每个JavaPackage命名的唯一
Stella981 Stella981
3年前
Python虚拟环境的创建和包下载
为什么使用虚拟环境因为直接在真实环境进行安装python的包会造成环境之间的污染,因此需要创建虚拟环境,原则上每一个项目都需要有一个独属于自己的虚拟环境Python项目的每次运行都需要启动环境,如果所有的模块都在一个环境中,不仅每次加载这些模块慢(尤其是开发过程中),并且依赖还可能相互冲突,甚至有些新引入的依赖会修改已安装模块的版
程序员一鸣 程序员一鸣
3小时前
鸿蒙开发:一文了解桌面卡片
在鸿蒙开发中,服务卡片虽然功能丰富,但也存在一些限制。例如,它不支持极速预览、断点调试和HotReload热重载等功能,同时也无法使用setTimeOut。此外,开发过程中还面临其他约束,如不支持导入动态共享包、使用native语言开发或加载nativeso。目前,服务卡片仅支持基于ArkUI的开发方式,且不支持跨平台开发,仅能使用声明式范式的部分组件、事件、动效、数据管理、状态管理和API能力。
使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南
随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro发布了v4.0.0beta.x版本,支持使用Taro快速开发鸿蒙原生应用,也可将现有的小程序转换为鸿蒙原生应用。在《使用Taro开发鸿蒙原生应用》系列文章中,我们已经介绍
taskbuilder taskbuilder
6个月前
文件同步工具
在进行软件开发时,开发者一般会在自己电脑上搭建一个开发环境,先在自己电脑上进行开发和测试,没有问题后,再通过远程桌面、ftp或其他工具把代码发布到正式服务器上。为了方便开发者同步本地开发环境和正式服务器上的文件,TaskBuilder提供了一个文件同步工具
京东云开发者 京东云开发者
5个月前
使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南
作者:京东零售利齐诺随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro发布了v4.0.0beta.x版本,支持使用Taro快速开发鸿蒙原生应用,也可将现有的小程序转换为鸿蒙原生应用。在《使用Taro开发鸿蒙原生应用》系列