详解鸿蒙开发如何上传三方库到ohpm仓库

article/2025/8/3 20:02:25

前两天幽蓝君在ohpm仓库上传了自己的第一个三方库,完整体验了一下ohpm的上传流程,感觉还是比较繁琐的,所以把上传流程和一些注意事项分享给大家。

先介绍一下怎么开发一个三方库,在项目名称右键,新建Module,选择static library,在命名时尽量使用小写字母,避免大写。

创建之后项目中会出现三方库目录,你可以在这编写你的三方库代码,开发完之后,还有一些工作要做。

首先在三方库目录的oh-package.json5文件中配置一下必要信息:

name:名称

version:版本号

description:描述

main:入口

author:作者

license:开源协议

另外,再创建三个新的文件,并认真填写信息:

1、README.md

在这里描述你的三方库有什么功能,如何安装和使用

2、CHANGELOG.md

填写每一个版本号的变更内容

3、LICENSE

这里需要填写和oh-package.json5中license对应的许可文件和开源协议,比如license中写的是Apache-2.0,这里就要写对应的许可文件。

这些都完成之后,点击Build菜单下的打包命令。打包完成之后三方库目录下会多出一个build文件夹,在其中的outputs目录下就是打包完成的三方库文件。

为确保上传后能正常使用,你可以先在本地测试一下。本地调用三方库的方法是在项目目录的oh-package.json5文件中引入三方库:

然后就可以在项目中使用三方库了。

下面介绍一下如何上传三方库到ohpm仓库

进入个人中心:

首先要进行认证管理:

点击新增会弹出标题和公钥的输入框,标题随便写,关于公钥,打开终端执行

ssh-keygen -m PEM -t RSA -b 4096 -f ~/.ssh_ohpm/mykey

~/.ssh_ohpm/mykey 为私钥文件 mykey 的文件路径,按照实际情况指定。指定的私钥存储目录必须存在。

这个目录在哪呢,以mac为例,我的文件在用户/USER/.ssh文件夹里,所以我执行的是

ssh-keygen -m PEM -t RSA -b 4096 -f /Users/用户名/.ssh/ohpm_rsa

执行命令需要输入密码,记住这个密码,在上传库文件时需要用到

执行完之后会创建两个文件,一个带.pub后缀的文件和一个不带后缀的文件。.pub就是公钥文件,将内容复制到公钥输入框中。

不带后缀的是私钥文件,我们要执行以下配置,对于ohpm命令需要到DevEco下执行:

ohpm config set key_path  ~/.ssh_ohpm/mykey

接下来要配置发布id,在ohpm个人中心有一个复制发布码,复制以下,执行以下命令:

ohpm config set publish_id your_publish_id

your_publish_id就是复制的发布码

最后一步,推送三方库到远程仓库:

ohpm publish <HAR路径>

别忘了这里要输一个密码,前面提到过。

上传完成后系统会自动进入审核,在工作日这个审核是比较快的,审核通过就可以在ohpm中心看到自己的三方库啦。#三方SDK##工具效率#


http://www.hkcw.cn/article/RyrdXbxxfL.shtml

相关文章

PHP与MYSQL结合中中的一些常用函数,HTTP协议定义,PHP进行文件编程,会话技术

MYSQL&#xff1a; 查询函数: 执行查询语句: 1.mysql_query("SQL语法"); 凡是执行操作希望拿到数据库返回的数据进行展示的(结果返回: 数据结果); 2.执行结果的处理:成功为结果集&#xff0c;失败为false; 成功返回结果:SQL指令没有错误&#xff0c;但是查询结果…

[Protobuf]常见数据类型以及使用注意事项

[Protobuf]常见数据类型以及使用注意事项 水墨不写bug 文章目录 一、基本数据类型1、字段2、字段的修饰规则 二、自定义数据类型1、message类型2、enum类型3、Any类型4、oneof类型5、map类型 三、小工具1.hexdump2.decode 四、注意事项 一、基本数据类型 protobuf 支持多种基础…

邂逅Webpack和打包过程

前端开发方向 目前国内的前端开发 主要使用Vue和React 一般你写个项目&#xff0c;过程就是&#xff1a;npm/yarn --> webpack架构 --> Vue/React框架 而针对Vue和React都有脚手架的&#xff0c;脚手架是基于webpack搭建的 你写.jsx或者ts之类的浏览器是不认识的&…

计算机网络第1章(下):网络性能指标与分层模型全面解析

目录 一、计算机网络的性能指标1.1 性能指标1&#xff1a;速率1.2 性能指标2&#xff1a;带宽1.3 性能指标3&#xff1a;吞吐量1.4 性能指标4&#xff1a;时延1.5 性能指标5&#xff1a;时延带宽积1.6 性能指标6&#xff1a;往返时延1.7 性能指标7&#xff1a;信道利用率 二、计…

多模态大语言模型arxiv论文略读(102)

Chat2Layout: Interactive 3D Furniture Layout with a Multimodal LLM ➡️ 论文标题&#xff1a;Chat2Layout: Interactive 3D Furniture Layout with a Multimodal LLM ➡️ 论文作者&#xff1a;Can Wang, Hongliang Zhong, Menglei Chai, Mingming He, Dongdong Chen, Ji…

python学习打卡day42

DAY 42 Grad-CAM与Hook函数 知识点回顾 回调函数lambda函数hook函数的模块钩子和张量钩子Grad-CAM的示例 作业&#xff1a;理解下今天的代码即可 1.回调函数 Hook本质是回调函数&#xff0c;所以我们先介绍一下回调函数 回调函数是作为参数传递给其他函数的函数&#xff0…

VeriFree:无需Verifier的通用RL框架

文章目录 前言1. 研究背景与挑战1.1 传统强化学习框架&#xff08;RLVR&#xff09;的领域局限性1.2 引入LLM作为验证器的新挑战1.3 研究目标的提出 2. VeriFree方法核心原理2.1 问题定义与形式化建模2.2 核心思想&#xff1a;隐式验证与概率最大化2.3 训练技术细节 3. 实验4. …

uniapp uni-id 如果是正式项目,需自行实现发送邮件的相关功能

(3) 使用云对象sendEmailCode 发送邮箱验证码&#xff0c;报错送邮箱验证码失败 Error: 已启动测试模式&#xff0c;直接使用&#xff1a;123456作为邮箱验证码即可。 如果是正式项目&#xff0c;需自行实现发送邮件的相关功能 - DCloud问答 uni-id 没有实现邮箱验证码逻辑&am…

HiEV独家 | 整合智能化战线,奇瑞辅助驾驶驶向何方?

作者 |德新 编辑 |王博 组织调整是战略变革的映射&#xff0c;而战略变革最终要在产品上体现。 5月30日&#xff0c;奇瑞汽车官宣整合旗下雄狮科技、大卓智能与研发总院相关业务&#xff0c;成立「智能化中心」。智能化中心下设有智能座舱、智能辅助驾驶、电子电气架构等子中…

什么是软件需求可视化?如何实际运用?

一、什么是软件需求可视化&#xff1f; 将软件需求可视化是一个有助于团队成员更好地理解项目需求、促进沟通和协作的重要过程。以下是几种常见的方法和技术&#xff0c;可以帮助你有效地实现这一目标&#xff1a; 用户故事地图&#xff1a;这是一种通过创建一个从用户角度出发…

腾讯:强化学习提高LLM机器翻译

&#x1f4d6;标题&#xff1a;TAT-R1: Terminology-Aware Translation with Reinforcement Learning and Word Alignment &#x1f310;来源&#xff1a;arXiv, 2505.21172 &#x1f31f;摘要 最近&#xff0c;像DeepSeek-R1这样的深度推理大型语言模型&#xff08;LLM&…

C++ IO流

目录 一、C语言的输入与输出 二、流 三、CIO流 3.1 C标准IO流 3.2 C文件IO流 3.3 stringstream字符串流 一、C语言的输入与输出 在 C 语言中&#xff0c;最常用的输入输出函数是 scanf() 和 printf()。它们分别用于从标准输入读取数据&#xff0c;以及将数据输出到标准输出…

linux文件管理(补充)

1、查看文件命令 1.1 cat 用于连接文件并打印到标准输出设备上&#xff0c;它的主要作用是用于查看和连接文件。 用法&#xff1a; cat 参数 文件名 参数&#xff1a; -n&#xff1a;显示行号&#xff0c;会在输出的每一行前加上行号。 -b&#xff1a;显示行号&#xff0c;…

Relational Algebra(数据库关系代数)

目录 What is an “Algebra” What is Relational Algebra? Core Relational Algebra Selection Projection Extended Projection Product&#xff08;笛卡尔积&#xff09; Theta-Join Natural Join Renaming Building Complex Expressions Sequences of Assignm…

操作系统:进程管理(王道+计算机操作系统)

第二章 进程与线程 2.1进程的概念、组成与特征 2.1.1 进程与程序的区别 ​ 1.程序&#xff1a;静态的&#xff0c;就是放在磁盘里的可执行文件&#xff0c;如&#xff1a;QQ.exe。 ​ 2.进程&#xff1a;动态的&#xff0c;是程序的一次执行过程&#xff0c;如&#xff1a;…

浅谈简历制作的四点注意事项

如大家所了解的&#xff0c;一份工作&#xff0c;往往是从制作一份简历开始。 对于新人来说&#xff0c;简历制作的注意事项&#xff0c;你又了解多少呢&#xff1f;下面一起来看看吧&#xff01; 简历字数&#xff1a;一封合格的简历字数大概在 350 词 – 650 词之间&#xf…

软考-数据库系统工程师-程序设计语言知识要点

小房学堂&#xff0c;程序设计语言知识要点 汇编、编译、解释系统的基础知识 计算机只能理解由0-1组成的指令&#xff0c;就像一个只会本国语言的人&#xff0c;他听不懂其他国家的语言 而程序员编程使用的是低级语言&#xff08;汇编语言&#xff09;或者高级语言如C、C、Jav…

6级翻译学习

找到一个中文句子先看中文句子的主谓宾&#xff0c;主系表 不会写的词不要写&#xff0c;不会影响得分&#xff0c;只要其他地方写对

【Rhino】【Python】adjust repeated column marks

#codingutf-8 import rhinoscriptsyntax as rs import re import System.Guiddef process_column_marks():# 获取目标图层中的所有文本对象layer_name "03 STR. DRAFT MEMBER::COLUMN MARK"text_objects rs.ObjectsByLayer(layer_name, True)if not text_objects o…

Goreplay最新版本的安装和简单使用

一&#xff1a;概述 Gor 是一个开源工具&#xff0c;用于捕获实时 HTTP 流量并将其重放到测试环境中&#xff0c;以便使用真实数据持续测试您的系统。它可用于提高对代码部署、配置更改和基础设施更改的信心。简单易用。 项目地址&#xff1a;buger/goreplay: GoReplay is an …