HarmonyOS开发:超详细介绍如何开源静态共享包,实现远程依赖

前言

当我们开发了一个独立的功能,想让他人进行使用,一般的方式就是开源出去,有源码的方式,也有文件包的形式,当然了也有远程依赖的方式,比如在Android中,我们可以提供源码,也可以打包成一个aar,当然了也可以maven仓库形式的远程依赖。

无论是内部多项目形式的开发,还是开源供他人使用,无疑远程依赖的方式是最方便的,有了更改,只需变动版本号就可以了,当然了,如果是内部,仅仅是单一项目使用,大可不必采用远程依赖,直接在放入到项目中开发即可。

需要注意的是,静态共享包的远程发布和是否是NEXT系统没有直接的关联,你是Api9,也是可以发布至远程的,当然了,考虑到NEXT的到来,很多Api有些许的差异,也希望大家可以基于NEXT进行发布。

本篇文章分享如下:

1、如何打一个静态共享包

2、静态共享包上传前的文件配置

3、上传一个静态共享包

4、静态共享包的使用、更新与删除

5、总结

一、如何打一个静态共享包

这个就太简单了,在之前的文章HarmonyOS开发:走进静态共享包的依赖与使用中(https://juejin.cn/post/7274982412245876776),关于静态包的创建以及使用,做了很详细的介绍了,有兴趣的同学可以查看,当然了,这里也简单的概述一下。

1、创建静态共享包

在项目右键,新建Module:

d87e24986871ca0d30c8eee0f4d372a0.jpeg

选择Static Library:

dd7899d41285810611ccc78839c8540a.jpeg

填写Module名,选择设备,目前支持三种设备,手机、平板、2和1的平板电脑。

1fbc10a92cad4625361d5b56caeac143.jpeg

创建完成。

f9cac62cff915c5a5f85251f673cf3d1.jpeg

2、编译静态共享包

静态共享包创建完成之后,大家就可以编写自己的代码了,可以包含代码、C++库、资源和配置文件,具体的功能性使用,大家可以看之前分享的文章,由于NEXT和之前的版本有部分语法上的区别,大家在NEXT版本上需要注意。

这里有一点需要注意,那就是混淆方式,之前的混淆方式,build-profile.json5文件中添加artifactType属性为obfuscation,但是在NEXT版本之后就不支持了。

NEXT版本混淆如下,在模块级的build-profile.json5配置文件中开启混淆功能,有点类似于Android Studio里的混淆方式。

{
  "apiType": "stageMode",
  ...
  "buildOptionSet": [
    {
      "name": "release",
      "arkOptions": {
        "obfuscation": {
          "ruleOptions": {
            "enable": true,               // true表示进行混淆,false表示不进行混淆。默认值为true
            "files": [
              "./obfuscation-rules.txt"  // 混淆规则文件
            ]
          }
        }
      }
    },
  ],
  ...
}

一切功能都开发完成之后,点击当前的静态共享包,选择Build中第一个选项。

0b4d735608d28468f56e908b89c3fb17.jpeg

编译之后,在静态共享包下,如下的位置,就会产生一个har包,证明就编译成功了,这个就是我们最终要上传的包。

eb240dccc4829c3be98054244aa8e73e.jpeg

二、静态共享包上传前的文件配置

在OpenHarmony三方库中心仓中,仅仅上传一个har包,是不能上传成功的,必须得有针对静态共享包的描述也就是README文件,更新版本信息CHANGELOG 文件,还有就是开源协议license,这些都是必要的。

1、README文件

和大多数开源项目一样,主要介绍静态共享包的功能,使用方式等等,当然,大家也可以去OpenHarmony三方库中心仓看看别人是如何写的,当然了,有条件的,可以写两份,一份中文,一份英文。

2bcefc2cc5b6932b5768b4b3287c83f2.jpeg

这些信息,主要展示在描述信息里,如下所示:

6839a62bb2cbcc190059d9549a150a6e.jpeg

2、CHANGELOG 文件

CHANGELOG文件也是md文件,主要记录当前的更新版本信息,如下所示:

773f0b3c3d03cf64f01ba46a11503c72.jpeg

以上呢,主要展示在版本信息里,如下所示:

6572740714e6af496d1fb394df56db2d.jpeg

3、开源协议license

LICENSE 文件的存在对于三方库开源尤其重要,因为它确保了软件的自由和开放,同时也允许作者保留某些权利,支持大部分的开源协议。

bdab29c1971a4f69677367d7ec1fd9ba.jpeg

除了以上之外呢,还有一处是比较重要的,那就静态共享包的基本信息填写,会展示在右侧的模块里:

732cdc7ce74689460fc3d31e3d81d337.jpeg

主要是oh-package.json5文件,包含了静态包的名字,版本,描述信息等。

{
  "name": "名字",
  "version": "版本号",
  "description": "描述信息",
  "main": "Index.ets",
  "author": "作者",
  "license": "Apache-2.0",
  "keywords": ["搜索关键词"],
  "homepage": "主页地址",
  "repository": "仓库地址",
  "dependencies": {}
}

三、上传一个静态共享包

当一个静态共享包,所有的准备工作完成之后,我们就可以上传远程仓库了,也就是OpenHarmony三方库中心仓。

1、注册账号

第一步就是注册账号,地址是:ohpm.openharmony.cn。

2、新增组织管理

也就是以后你的开源包上传到哪个组织下,这个有审核,之前审核特别慢,但是最近审核还是很快的。

1a4a5413ee306b35701588c063b5d7dd.jpeg

组织名称,一般简单的英文即可。

80c920704dc87061676d4303eda161d1.jpeg

3、生成公、私钥

打开命令行窗口,执行如下命令,your_key_path就是你要生成到哪个路径下:

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

中间有一步需要设置密码,这个密码一定要记住,以后发布都会用到。

01e31b7249ea00f1a2a11eaf1896a300.jpeg

47694ec971087b0855b3e026b9d5b7c7.jpeg

执行成功后,会生成两个文件,一个公钥一个私钥,如下所示:

2054a32fde41e18ad2bae6c8c744f991.jpeg

4、新增OHPM公钥

回到OpenHarmony三方库中心仓,点击个人中心,点击认证管理,新增即可。

d0aa89b42df999223d7b56d9c0338e5b.jpeg

点击新增之后,把第3步中生成的公钥,也就是.pub文件内容复制过来,保存即可。

8176df98f0a44a0923c08886c84dc95c.jpeg

5、配置私钥文件

同样的,打开命令行工具,执行如下命令,your_key_path就是私钥文件路径。

ohpm config set key_path your_key_path

6、复制发布码并配置

去OpenHarmony三方库中心仓个人中心中,点击复制发布码。

854135845961241725583734be830372.jpeg

打开命令行工具,设置发布码,your_publish_id就是刚才复制的发布码。

ohpm config set publish_id your_publish_id

7、发布HAR

执行如下命令,HAR路径就是打出的静态包路径。

ohpm publish HAR路径

执行完命令后,输入配置的秘钥密码即可:

2f76eba6289a3c80d105b2e45d1c472a.jpeg

命令执行成功之后,就可以在个人中心的消息里,看到审核记录。

3f62fff747f894a8c3ee5d8c8ff9a1db.jpeg

审核成功之后,在OpenHarmony三方库中心仓里就可以看到了,之后就可以远程依赖使用了。

四、静态共享包的使用、更新与删除

1、使用静态共享包

静态共享包,发布成功,并且审核通过之后,那么使用,则是非常的简单,只需要在oh-package.json5文件里的dependencies属性里,把远程依赖即可,当然了,这里需要进行同步项目。

4313deaad4bcde6a366a6af5e2cb8fad.jpeg

这种远程依赖的方式,是不是要比本地har包或者Module的方式要简单的多了。需要注意的是,关于三方库的名字,需要规划化:

OpenHarmony 三方库命名规范:


格式如 @group/package_name,全局唯一;
除了 @ 和 / 之外,group 和 package_name 只能由小写字母、数字、_和 - 组成;
总长度小于等于 128 个字符;
须以字母开头;
不能是 ArkTS 的保留关键字。

当然了,除了以上的手动输入依赖之外,你也可以进行命令操作,会自动的在oh-package.json5文件里的dependencies属性里进行配置。

ohpm install <package_name>

2、更新静态共享包

更新有两种方式,一种是手动更改版本号,也就是在oh-package.json5文件里的dependencies里进行手动更改,重新同步项目即可,另一种就是命令操作。

更新所有三方库:

ohpm update

更新指定名称的三方库:

ohpm update <package_name>

3、移除静态共享包

移除,最简单的方式就是在oh-package.json5文件里的dependencies里进行手动移除,然后同步项目即可。当然,你也可以执行命令移除。

移除单个:

ohpm uninstall <package_name>

移除所有三方库:

ohpm uninstall

五、总结

有的同学可能会有疑问,静态共享包中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝,而动态共享包可以让多个HAP共享同一公共资源代码,极大程度上减少了包体积,为什么不把动态共享包上传至远程,进行依赖呢?

可以告诉大家的是,是因为目前官方还不支持,当下远程依赖仅支持静态共享包的发布,不过呢,在私仓可以使用;毕竟动态共享包只支持在应用内共享,不支持跨应用共享,可能也是趋于这一层原因。

127da81a87c9638e7c868c9f4366de17.jpeg

好了,本篇文章就到这里,下一篇,我们探究下共享包的私服搭建和使用。

作者:程序员一鸣
链接:https://juejin.cn/post/7345735009451900963

关注我获取更多知识或者投稿

3c2458f7608b9254822da075f9ebf286.jpeg

e04eb988b03e1f3c815c0833e3b9d347.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值