鸿蒙NEXT开发-发布三方库

server/2025/2/13 4:24:05/

开发一个三方库

如需发布一个 har 包,必须包含 oh-package.json5、README.md,CHANGELOG.md 和 LICENSE 四个文件,若文件缺失,会导致上架至中心仓失败。

HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。

 

1、创建一个新的工程项目

2、创建库模块,选择static library
  1. 鼠标移到工程目录顶部,单击右键,选择New > Module,在工程中添加模块。
  2. Choose Your Ability Template界面中,选择Static Library,并单击Next

创建完成后,会在工程目录中生成库模块及相关文件。

3、对所创建的库模块进行开发,需要完善库模块中生成的 oh-package.json5 文件

OpenHarmony 三方库命名规范:

  • 格式为:@group/packagename 或 packagename,长度:[1, 128],全局唯一,即一个应用中,不同 package 的 package name 不能重名;
  • name 中只有在存在组织名称 group 时,才能有且仅能有一个'@'符号,有且仅有一个路径分隔符'/';
  • 组织名称 group 格式:
    (1)仅允许以小写字母开头,可由小写字母、数字、中划线(-)、下划线(_)组成。
    (2)禁止以中划线(-)、下划线(_)结尾。
    (3)不允许为 ArkTS 的保留关键字。
  • packagename 格式:
    (1)仅允许以小写字母开头,可由小写字母、数字、点(.)、中划线(-)、下划线(_)组成。
    (2)禁止以点(.)、中划线(-)、下划线(_)结尾。
    (3)不允许为 ArkTS 的保留关键字。
  • 建议三方库名称携带组织名称 group,便于管理和识别三方库。

当您选择三方库名称时,请满足 OpenHarmony 三方库命名规范,同时也请选择名称是:

  • 独特的;
  • 有描述性的;
  • 符合正常条例的,例如,请不要给您的三方库起一个冒犯性的名字,也不要使用别人的商标名。

此外,在为未加命令空间的三方库选择名称时,还请选择一个名称:

  • 尚未归他人所有;
  • 与另一个三方库名称的拼写方式不同;
  • 不会混淆其他作者身份。

{"license": "Apache-2.0","devDependencies": {},"keywords": ["OpenHarmony","HarmonyOS","file","fileUpload","upload","image","download"],"ibestservices": {"org": "opensource"},"author": "ibestservices","name": "@ibestservices/file_operation","description": "A harmonyos plugin for file and image upload download","main": "index.ets","repository": "https://gitee.com/ibestservices/file_operation.git","version": "4.0.0","dependencies": {},"tags": ["file_operation"]
}

4、在库模块的根目录中,创建一个 README.md 文件,描述您三方库的代码以及如何使用它,文件不能为空

5、在库模块的根目录中,创建一个 CHANGELOG.md 文件,描述您三方库的代码不同版本的变更内容,文件不能为空

6、在库模块的根目录中,创建一个 LICENSE 文件,指定该软件包可以在什么样的许可下被使用、修改和共享,文件不能为空

直接找个apache2.0开源协议即可

7、利用 DevEco Studio 对开发后的库模块打成 HAR 包

开发完库模块后,选中模块名,然后通过DevEco Studio菜单栏的Build > Make Module ${libraryName}进行编译构建,生成HAR。HAR可用于工程其它模块的引用,或将HAR上传至ohpm仓库,供其他开发者下载使用。

编译构建的HAR可在模块下的build目录下获取,包格式为*.har。

发布中心仓

1、请先确保在OpenHarmony三方库中心仓上已经创建了帐号,且进行了认证管理。

OpenHarmony三方库中心仓

2、打开开发工具的终端,利用工具ssh-keygen生成公、私钥,可执行以下命令

ssh-keygen -m PEM -t RSA -b 4096 -f 生成的公钥私钥指定的路径地址和文件名

ssh-keygen -m PEM -t RSA -b 4096 -f E:\harmonyProject\library_test\demo

我这里指定文件名是demo,这个文件无需自己手动创建,系统会自动生成

3、登录OpenHarmony三方库中心仓官网,单击主页右上角的个人中心, 新增OHPM公钥,将公钥文件(demo.pub)的内容粘贴到公钥输入框中。

4、打开命令行工具,将对应私钥文件路径配置到 .ohpmrc 文件中 key_path 字段上,可执行以下命令进行配置

ohpm config set key_path E:\harmonyProject\library_test\demo

5、登录OpenHarmony三方库中心仓官网,单击主页右上角的个人中心,复制发布码,获取发布码并配置到 .ohpmrc 文件中,可执行如下命令:

ohpm config set publish_id 发布码

6、配置发布地址
ohpm config set publish_registry https://ohpm.openharmony.cn/ohpm

7、执行如下命令发布HAR,<HAR路径>需指定为.har文件的具体路径。

ohpm publish <HAR路径>

8、之后就可以在三方库中心仓看到你提交的记录

9、审核通过就可以在中心仓搜到你提交的三方库了


http://www.ppmy.cn/server/167236.html

相关文章

Maven安装详解

文章目录 1、下载2、配置环境变量3、阿里云镜像4、本地仓库5、在IDEA中使用MAVEN5.1 基本配置5.2 创建项目 1、下载 官网&#xff1a;https://archive.apache.org/dist/maven/maven-3/ Maven版本不能安装太高&#xff0c;但是也不能选择太低的版本&#xff0c;否则&#xff0c;…

Django开发入门 – 0.Django基本介绍

Django开发入门 – 0.Django基本介绍 A Brief Introduction to django By JacksonML 1. Django简介 1) 什么是Django? 依据其官网的一段解释&#xff1a; Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. …

【从零开始入门unity游戏开发之——C#篇56】C#补充知识点——模式匹配

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…

腾讯云HAI部署DeepSeek结合Ollama API搭建智能对话系统

前言 本文将详细介绍如何在腾讯云HAI平台上部署DeepSeek模型&#xff0c;并配置使用Ollama API服务以实现对外部请求的支持。通过对前期准备、部署流程、API服务配置及使用的详细阐述&#xff0c;希望能为读者提供一个全面且实用的指南&#xff0c;助力AI应用的高效开发和部署…

【EXCEL】【VBA】最大值行索引查找与Z字形数据重排

一、公式获取列中最大值及所对应的行号 1. 获取区域最大值 MAX(IF(ROW(N:N)>3,N:N,""))原理解析&#xff1a; ROW(N:N) - 返回行号IF(ROW(N:N)>3,N:N,"") - 过滤第3行之后的数据MAX() - 计算最大值 2. 查找最大值位置 MATCH(MAX(IF(ROW(O:O)>…

数据可视化技术综述(4)衡量数据的性能指标的十大维度

数据可视化系统的性能直接影响用户体验与业务决策效率。本文从技术实现与工程化视角&#xff0c;系统阐述衡量数据可视化性能的十大核心维度&#xff0c;包括渲染效率、数据吞吐量、内存占用、响应延迟、可扩展性、准确性、跨平台兼容性、交互流畅度、资源消耗及容错性。通过分…

黑马 Linux零基础快速入门到精通 笔记

初识Linux Linux简介 提及操作系统&#xff0c;我们可能最先想到的是windows和mac&#xff0c;这两者都属于个人桌面操作系统领域&#xff0c;而Linux则属于服务器操作系统领域。无论是后端软件、大数据系统、网页服务等等都需要运行在Linux操作系统上。 Linux是一个开源的操作…

Maven 中常用的 scope 类型及其解析

在 Maven 中&#xff0c;scope 属性用于指定依赖项的可见性及其在构建生命周期中的用途。不同的 scope 类型能够影响依赖项的编译和运行阶段。以下是 Maven 中常用的 scope 类型及其解析&#xff1a; compile&#xff08;默认值&#xff09;&#xff1a; 这是默认的作用域。如果…