目录
build-profile.json5
工程级build-profile.json5
模块级build-profile.json5
package.json
工程级package.json
模块级package.json
在进行OpenHarmony应用/服务的编译构建前,您可以对构建配置文件、构建脚本(暂不支持自定义)、应用依赖的npm包等信息进行设置。
- build-profile.json5:OpenHarmony应用/服务构建配置文件。
- hvigorfile.js:编译构建脚本,当前暂不支持自定义。
- package.json:应用的三方包依赖,支持HAR(遵循npm标准规范)和npm包的依赖。
build-profile.json5
工程级build-profile.json5
工程级build-profile.json5的示例如下所示:
- {
- "app": {
- "signingConfigs": [ //工程的签名信息,可包含多个签名信息
- {
- "name": "default", //标识签名方案的名称
- "material": { //该方案的签名材料
- "certpath": "D:\SigningConfig\debug_ohos.cer", //调试或发布证书文件,格式为.cer
- "storePassword": "******", //密钥库密码,以密文形式呈现
- "keyAlias": "debugKey", //密钥别名信息
- "keyPassword": "******", //密钥密码,以密文形式呈现
- "profile": "D:\SigningConfig\debug_ohos.p7b", //调试或发布证书Profile文件,格式为.p7b
- "signAlg": "SHA256withECDSA", //密钥库signAlg参数
- "storeFile": "D:\SigningConfig\debug_ohos.p12" //密钥库文件,格式为.p12
- }
- }
- ],
- "compileSdkVersion": 8, //指定OpenHarmony应用/服务编译时的SDK版本
- "compatibleSdkVersion": 8, //指定OpenHarmony应用/服务兼容的最低SDK版本
- "products": [ //定义构建的产品品类,如通用默认版、付费版、免费版等
- {
- "name": "default", //定义产品的名称,由开发者自定义
- "signingConfig": "default", //指定当前产品品类对应的签名信息,签名信息需要在signingConfigs中进行定义
- }
- ]
- },
- "modules": [
- {
- "name": "entry", //模块名称
- "srcPath": "./entry", //标明src目录相对工程根目录的相对路径
- "targets": [ //定义构建的产物,由product和各模块定义的targets共同定义
- {
- "name": "default", //target名称,由各个模块的build-profile.json5中的targets字段定义
- "applyToProducts": [ //产品品类名称,由products字段进行定义
- "default"
- ]
- }
- ]
- }
- ]
- }
模块级build-profile.json5
模块级build-profile.json5的示例如下所示:
- {
- "apiType": 'faMode', //API类型,API 8为FA模型,API 9为FA或Stage模型
- "showInServiceCenter": true, //是否在服务中心展示
- "buildOption": {
- //配置筛选har依赖.so资源文件的过滤规则
- "napiLibFilterOption": {
- //按照.so文件的优先级顺序,打包最高优先级的.so文件
- "pickFirsts": [
- "**/1.so"
- ],
- //按照.so文件的优先级顺序,打包最低优先级的.so 文件
- "pickLasts": [
- "**/2.so"
- ],
- //排除的.so文件
- "excludes": [
- "**/3.so"
- ],
- //允许当.so重名冲突时,使用高优先级的.so文件覆盖低优先级的.so文件
- "enableOverride": true
- },
- //cpp相关编译配置
- "externalNativeOptions": {
- "path": "./src/main/cpp/CMakeLists.txt", //CMake配置文件,提供CMake构建脚本
- "arguments": "", //传递给CMake的可选编译参数
- "abiFilters": [ //用于设置本机的ABI编译环境
- "armeabi-v7a",
- "arm64-v8a"
- ],
- "cppFlags": "" //设置C++编译器的可选参数
- },
- },
- "targets": [ //模块对应的产物配置
- {
- "name": "default",
- },
- {
- "name": "ohosTest",
- }
- ]
- }
package.json
OpenHarmony应用/服务支持通过npm来安装、共享、分发代码,管理项目的依赖关系。OpenHarmony npm包规范是在标准npm规范的基础上,增加了对OpenHarmony平台的拓展。因此,package.json格式遵循标准的NPM规范(具体可查阅npm官方文档
),接下来主要介绍OpenHarmony npm部分的规范。
工程级package.json
工程级package.json的示例如下所示:
- {
- "name": "myapplication",
- "version": "1.0.0",
- "ohos": {
- "org": "huawei",
- "buildTool": "hvigor",
- "directoryLevel": "project"
- },
- "description": "example description",
- "repository": {},
- "license": "ISC",
- "dependencies": {
- "@ohos/hypium": "1.0.2",
- "@ohos/hvigor": "1.2.2",
- "@ohos/hvigor-ohos-plugin": "1.2.2"
- }
- }
关于OpenHarmony npm包的相关字段说明如下,其余字段遵循package.json标准规范
。
- ohos闭包:OpenHarmony应用/服务的扩展字段,表示在npm标准规范的基础上叠加了OpenHarmony npm包。
- org:标识OpenHarmony npm包的维护主体。
- buildTool:标识OpenHarmony npm包的构建工具是hvigor。
- directoryLevel:标识OpenHarmony npm包是工程的依赖。
- dependencies闭包:设置工程依赖的npm包及版本,在遵循npm原生的基础上,可以添加@ohos相关的依赖,如构建插件,OpenHarmony npm三方共享包等。
模块级package.json
模块级package.json的示例如下所示:
- {
- "license": "ISC",
- "devDependencies": {
- "@types/libentry.so": "file:./src/main/cpp/types/libentry"
- },
- "name": "entry",
- "ohos": {
- "org": "huawei",
- "directoryLevel": "module",
- "buildTool": "hvigor"
- },
- "description": "example description",
- "repository": {},
- "version": "1.0.0",
- "dependencies": {}
- }
关于HAR包的相关字段说明如下,其余字段遵循package.json标准规范
。
- ohos闭包:OpenHarmony应用/服务的扩展字段,表示在npm标准规范的基础上叠加了OpenHarmony npm包。
- org:标识OpenHarmony npm包的维护主体。
- directoryLevel:标识OpenHarmony npm包是模块级的依赖。
- buildTool:标识OpenHarmony npm包的构建工具是hvigor。
- dependencies闭包:设置模块依赖的npm包及版本,在遵循npm原生的基础上,可以添加@ohos相关的依赖,如OpenHarmony npm三方共享包等。