HarmonyOS 鸿蒙开发DevEco Studio OpenHarmony:配置编译构建信息

目录

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的示例如下所示:


  1. {
  2. "app": {
  3. "signingConfigs": [ //工程的签名信息,可包含多个签名信息
  4. {
  5. "name": "default", //标识签名方案的名称
  6. "material": { //该方案的签名材料
  7. "certpath": "D:\SigningConfig\debug_ohos.cer", //调试或发布证书文件,格式为.cer
  8. "storePassword": "******", //密钥库密码,以密文形式呈现
  9. "keyAlias": "debugKey", //密钥别名信息
  10. "keyPassword": "******", //密钥密码,以密文形式呈现
  11. "profile": "D:\SigningConfig\debug_ohos.p7b", //调试或发布证书Profile文件,格式为.p7b
  12. "signAlg": "SHA256withECDSA", //密钥库signAlg参数
  13. "storeFile": "D:\SigningConfig\debug_ohos.p12" //密钥库文件,格式为.p12
  14. }
  15. }
  16. ],
  17. "compileSdkVersion": 8, //指定OpenHarmony应用/服务编译时的SDK版本
  18. "compatibleSdkVersion": 8, //指定OpenHarmony应用/服务兼容的最低SDK版本
  19. "products": [ //定义构建的产品品类,如通用默认版、付费版、免费版等
  20. {
  21. "name": "default", //定义产品的名称,由开发者自定义
  22. "signingConfig": "default", //指定当前产品品类对应的签名信息,签名信息需要在signingConfigs中进行定义
  23. }
  24. ]
  25. },
  26. "modules": [
  27. {
  28. "name": "entry", //模块名称
  29. "srcPath": "./entry", //标明src目录相对工程根目录的相对路径
  30. "targets": [ //定义构建的产物,由product和各模块定义的targets共同定义
  31. {
  32. "name": "default", //target名称,由各个模块的build-profile.json5中的targets字段定义
  33. "applyToProducts": [ //产品品类名称,由products字段进行定义
  34. "default"
  35. ]
  36. }
  37. ]
  38. }
  39. ]
  40. }

模块级build-profile.json5

模块级build-profile.json5的示例如下所示:


  1. {
  2. "apiType": 'faMode', //API类型,API 8为FA模型,API 9为FA或Stage模型
  3. "showInServiceCenter": true, //是否在服务中心展示
  4. "buildOption": {
  5. //配置筛选har依赖.so资源文件的过滤规则
  6. "napiLibFilterOption": {
  7. //按照.so文件的优先级顺序,打包最高优先级的.so文件
  8. "pickFirsts": [
  9. "**/1.so"
  10. ],
  11. //按照.so文件的优先级顺序,打包最低优先级的.so 文件
  12. "pickLasts": [
  13. "**/2.so"
  14. ],
  15. //排除的.so文件
  16. "excludes": [
  17. "**/3.so"
  18. ],
  19. //允许当.so重名冲突时,使用高优先级的.so文件覆盖低优先级的.so文件
  20. "enableOverride": true
  21. },
  22. //cpp相关编译配置
  23. "externalNativeOptions": {
  24. "path": "./src/main/cpp/CMakeLists.txt", //CMake配置文件,提供CMake构建脚本
  25. "arguments": "", //传递给CMake的可选编译参数
  26. "abiFilters": [ //用于设置本机的ABI编译环境
  27. "armeabi-v7a",
  28. "arm64-v8a"
  29. ],
  30. "cppFlags": "" //设置C++编译器的可选参数
  31. },
  32. },
  33. "targets": [ //模块对应的产物配置
  34. {
  35. "name": "default",
  36. },
  37. {
  38. "name": "ohosTest",
  39. }
  40. ]
  41. }

package.json

OpenHarmony应用/服务支持通过npm来安装、共享、分发代码,管理项目的依赖关系。OpenHarmony npm包规范是在标准npm规范的基础上,增加了对OpenHarmony平台的拓展。因此,package.json格式遵循标准的NPM规范(具体可查阅npm官方文档
),接下来主要介绍OpenHarmony npm部分的规范。

工程级package.json

工程级package.json的示例如下所示:


  1. {
  2. "name": "myapplication",
  3. "version": "1.0.0",
  4. "ohos": {
  5. "org": "huawei",
  6. "buildTool": "hvigor",
  7. "directoryLevel": "project"
  8. },
  9. "description": "example description",
  10. "repository": {},
  11. "license": "ISC",
  12. "dependencies": {
  13. "@ohos/hypium": "1.0.2",
  14. "@ohos/hvigor": "1.2.2",
  15. "@ohos/hvigor-ohos-plugin": "1.2.2"
  16. }
  17. }

关于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的示例如下所示:


  1. {
  2. "license": "ISC",
  3. "devDependencies": {
  4. "@types/libentry.so": "file:./src/main/cpp/types/libentry"
  5. },
  6. "name": "entry",
  7. "ohos": {
  8. "org": "huawei",
  9. "directoryLevel": "module",
  10. "buildTool": "hvigor"
  11. },
  12. "description": "example description",
  13. "repository": {},
  14. "version": "1.0.0",
  15. "dependencies": {}
  16. }

关于HAR包的相关字段说明如下,其余字段遵循package.json标准规范

  • ohos闭包:OpenHarmony应用/服务的扩展字段,表示在npm标准规范的基础上叠加了OpenHarmony npm包。
    • org:标识OpenHarmony npm包的维护主体。
    • directoryLevel:标识OpenHarmony npm包是模块级的依赖。
    • buildTool:标识OpenHarmony npm包的构建工具是hvigor。
  • dependencies闭包:设置模块依赖的npm包及版本,在遵循npm原生的基础上,可以添加@ohos相关的依赖,如OpenHarmony npm三方共享包等。