鸿蒙开源三方组件Maven&HAPM发布流程指导 原创 精华
1 组件Maven发布
这里以发布到maven中心仓( https://s01.oss.sonatype.org/content/repositories/releases/ ) 为示例
1.1 前提条件:
Maven账号注册: 获取maven中心仓的用户名和密码以及生成groupid
1.2 maven 发布模板
对应修改library级别的build.gradle 文件的rootProject属性:
工程根目录创建一个upload.gradle文件,内容模板如下:
1.2 maven 发布步骤
-
在项目根目录粘贴upload.gradle 文件,这个脚本文件的内容基本是固定的。
注意:区分上传的是har包还是jar包,需要对应修改upload.gradle文件中from 属性,发布har包使用字段components.release,发布jar包使用components.java
-
注意:upload.gradle文件包含敏感信息,不能上传到gitee代码仓库。打开项目根目录.gitignore文件,添加upload.gradle,防止upload.gradle文件不小心上传到gitee远程代码仓库。
-
进入准备发布版本的组件库module library目录,打开build.gradle文件,对应修改 DEFAULT_GROUP_ID(组件发布地址不变的话,就不用改)、DEFAULT_ARTIFACT_ID(项目名称)、DEFAULT_VERSION(组件Maven版本号)参数。
-
打开项目根目录下的README.md文件,修改集成指引
-
双击执行publishing 任务下的publish进行版本发布,底部build、run选项窗口无报错信息则说明版本已经发布成功
- 验证:进入Nuxes仓库管理平台查看已发布的版本,Nuxex管理平台链接https://s01.oss.sonatype.org/,打开 release仓库查看自己发布的版本,不登录也能查看。
-
maven发布完成后,可以在gitee项目中添加一个tag标签(可选操作)。
Tag标签命名和发布到maven中心仓库的版本号对应。目前我们项目只有master分支,所以只需要在master添加tag标签即可,后期有其他分支再根据业务需求进行调整。
打开gitee官网https://gitee.com,进入项目新建一个tag标签,如下图:
2 组件HAPM发布
2.1:前提条件:
配置HPM
1、node.js安装
进入nodejs官网https://nodejs.org/en/download/,下载安装node.js,已经安装node.js请跳过此步骤。(注意不要更改默认安装路径)
安装完成之后,使用执行cmd命令查看node版本号:node -v
2、hpm 安装
-
执行命令安装hpm,安装命令 npm install –g @ohos/hpm-cli
注意:如果提示代理问题造成的安装失败,可以到C:\Users\xxxx找到.npmrc文件,把该文件删除,再尝试安装
- 执行命令查看hpm版本
- 配置密钥(用了别人账号的,只要是不同的电脑,就要重新配置)
- 在登陆时如果遇到如下错误,只需配置登录页面中登录按钮左侧的站点为“中国”即可。
- 进入https://hpm.harmonyos.com/hapm/#/cn/home,进入个人中心,查看邀请码
- 在登陆时如果遇到如下错误,只需配置登录页面中登录按钮左侧的站点为“中国”即可。
-
在cmd命令行窗口执行以下命令配置用户信息:
hpm config set loginUser 邀请码
-
在cmd命令行窗口执行以下命令生成密钥:hpm gen-keys
成功后会在C:\Users\xxxx.hpm\key下生成两个文件
2.1 HAPM介绍和准备工作:
HAPM介绍: https://hpm.harmonyos.com/hapm/#/cn/help/introduction
准备工作: https://hpm.harmonyos.com/hapm/#/cn/help/preparation
2.2 HAPM发布模板
对应修改library级别的build.gradle 文件的rootProject属性,内容如下:
工程根目录upload.gradle文件中增加发布HAPM的task模板,内容如下:
2.2 hapm发布步骤
-
在项目根目录粘贴upload.gradle 文件,这个脚本文件的内容基本是固定的,除个别需求,不需要修改。
注意:多库组件发布时,需注释掉已经上传完毕的build.gradle文件中的hapm相关配置信息,否则可能会导致后上传的库信息被覆盖。
-
注意:upload.gradle文件包含敏感信息,不能上传到gitee代码仓库。打开项目根目录.gitignore文件,添加下面内容,防止upload.gradle文件不小心上传到gitee远程代码仓库。
-
生成Release版本的har,要上传hapm模块下,执行packageReleaseHar,修改生成har名字为对应版本。
(可选:修改har包名称)生成的har包用于配置upload中 hpm.bundle.dirs属性,dirs里配置我们希望打包并发布到HAPM的文件,其中lib名字可以自定义,lib的值为har文件路径。我们发布的jar/har包文件名称,应该这样定义:库名称-版本号.jar/库名称-版本号.har,这样就和发布maven中心仓的jar/har对应了。
-
进入准备发布版本的组件库module目录,打开build.gradle文件,对应修改 DEFAULT_GROUP_ID(组件发布地址不变,不用改)、DEFAULT_ARTIFACT_ID(单库的就直接项目名,多库的就项目名+后缀)、DEFAULT_VERSION(hapm组件版本号)、LIB_HOME_URL(组件官网地址_主页)、LICENSE_NAME(License名称)、LICENSE_URL(组件的License文件地址)、HPM_DESCRIPTION(组件描述)、HPM_TAG(组件分类)、HPM_KEYWORDS(组件搜索关键字)、HPM_DIRS(组件生成的har包路径,不用修改)参数。
组件分类参照:
-
粘贴README.md文件、 LICENSE文件及CHANGELOG.md(选加)文件到lib模块根目录,不要添加进git版本管理。
如果一个组件他的license申明只写在了readme的末尾,工程根目录下没有单独的LICENSE文件,那么我们在发布hapm的时候,应该在工程根目录新建一个LICENSE文件,复制readme中的内容,并且提交到gitee, 最后再发布hapm
为保证HAMP上也能正常显示gif动图,请修改readme中的图片链接为gitee图片的在线绝对路径链接。例:
https://gitee.com/openharmony-tpc/PagerBottomTabStrip/blob/master/img/Custom1.gif 其中blob节点改成raw。
由于gitee上图片显示限制1M,超出1M的图片在HAPM系统上无法显示图片,可以自行把图片发布到到其他网站托管,引用其在线链接即可。
-
(可选: hpm-cli 版本为1.3.0,不必执行此步骤)使用cmd 打开控制台,更新 hpm-cli 版本到 1.3.0,(更新命令:npm update -g @ohos/hpm-cli),如已更新,不必执行此步骤。
验证hpm-cli版本的命令 hpm --version
更新 hpm-cli,命令 npm update -g @ohos/hpm-cli,如果执行命令之后开始执行更新,请等待
- (可选:如已确定jar/har已打包成功,可不执行此步骤)确保发布包内容正确验证:upload.gradle中命令行中添加 -p ,在命令中添加 -p 的意思是只打包不发布。
修改完成后保存,双击publish2hpm,然后会生成一个包含发布信息的tgz压缩包,如下图
将组件生成的tgz压缩包,粘到外面的文件夹,解压。
检查bundle.json内容是否正确,是否包含dirs属性,各字段以实际为准。
如果包含,删除 upload.gradle中的 -p,准备正式发布。
-
使用gradle 快捷命令 publish2hapm进行发布,执行成功即可。
-
验证,发布成功(有审核期,审核通过后)后,进入HAPM平台,下载发布成功的版本,解压查看是否包含我们希望打包发布的文件,如下图所示
附录: IDE 官方下载地址
IDE官方下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio
终于可以搞事情了
真好 我终于发布了半个月了啊啊啊
npm安装hpm应该是:
npm install -g @ohos/hpm-cli
而非npm install –g @hpm/hpm-cli
组件HAPM发布 不支持个人开发者
不支持个人,那这个........有点打击士气啊
请问Maven发布直接就能通过吗
不需要经过审核吗
不需要审核
哈哈 hapm 看看就好目前
maven中心仓发布后需要等待一会才会刷新显示。可以去Nuxex管理平台自行查看https://s01.oss.sonatype.org/
有人知道这个是什么原因吗?