Skip to content

Latest commit

 

History

History
56 lines (41 loc) · 1.83 KB

发行版.md

File metadata and controls

56 lines (41 loc) · 1.83 KB

发行版

发行版通常是将一系列组件组合起来,成为编译可以运行的OpenHarmony解决方案镜像,里面包含了多个依赖的组件,以及脚本,用于描述如何完整编译、链接这些组件。

发行版本身通常不需要包含功能实现代码,仅包含bundle.json描述(设置publishAs为distribution)和一些编译脚本组成。

因为发行版编译的过程需要系统提供环境变量,所以发行版使用scripts脚本中内置的dist命令:

{
    "publishAs":"distribution",
    "scripts": {
        "dist": "script compile command"
    }
}

编译执行使用如下命令:

hpm dist 

重新定义一个发行版所具有的功能是一个复杂的过程,所以系统允许对发行版进行继承,从而在现有功能的基础上进行定制。继承发行版需要在bundle.json中定义base字段。

{
    "base": {
        "name": "dist_wifi_iot",
        "version": "1.0.0"
    }
}

上述定义表明当前组件继承自发行版组件dist-wifi-iot 1.0.0。

发行版由很多的依赖组件组成,通过bundle.json中的dependencies段来描述,有些依赖是必须的,有些依赖则是根据可以需求增加或删除的。bundle.json中名称前带有?的依赖表示可选依赖,继承它的发行版,可以移除掉该可选组件,再增加别的组件进行替换。

{
    "dependencies": {
        "?my_bundle": "1.0.0"
    }
}

上述声明表示my_bundle依赖可以被移除。如果想要移除my_bundle,在上层依赖方需要使用excludes关键字来进行定义

{
    "excludes": [ "my_bundle" ]
}

依赖被移除后,就不会参入组件的构建过程。只有标记为可选的依赖才能够被移除,强行移除未被标记的依赖会出现错误提示。