HarmonyOS鸿蒙Next中编译HAR时会把AppScope中的app.json5合并到module.json5中

HarmonyOS鸿蒙Next中编译HAR时会把AppScope中的app.json5合并到module.json5中 编译HAR的时候会把AppScope中的app.json5合并到module.json5中,怎么办可以不带app.json5

3 回复

【背景知识】

【解决方案】

当编译构建需要排除某些目录或文件时,需要配置ohpmignore文件,并且还要明确该目录或文件是否被引用。

配置ohpmignore文件

若部分工程源文件无需构建到HAR包中,可在module目录下新建.ohpmignore文件,用于配置打包时要忽略的文件,将无需打包进HAR包的文件/文件夹名称写入.ohpmignore文件中。DevEco Studio构建时将过滤掉.ohpmignore文件中所包含的文件目录。

需注意:更改.ohpmignore配置后,需要清空相应模块的build文件夹,或点击DevEco Studio的Build -> clean project后再打包

示例配置

src/main/cpp/private/
*.test.ets
config.json

更多关于HarmonyOS鸿蒙Next中编译HAR时会把AppScope中的app.json5合并到module.json5中的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,编译HAR(Harmony Archive)时,系统会自动将AppScope目录下的app.json5配置合并到模块的module.json5中。这个合并过程是编译器的默认行为,目的是确保HAR包能正确继承应用级的配置。合并规则包括覆盖重复字段、保留特有字段。开发者无需手动操作,编译工具会处理这个流程。如果出现配置冲突,以module.json5的配置为准。

在HarmonyOS Next中,HAR编译时确实会将AppScope中的app.json5合并到module.json5中,这是系统默认行为。如果希望HAR不带app.json5配置,可以通过以下方式处理:

  1. 在构建HAR时,使用–exclude参数排除app.json5文件:
hdc build --target har --exclude AppScope/app.json5
  1. 或者修改构建配置,在build-profile.json5中明确指定不包含AppScope:
"artifactType": {
  "har": {
    "excludeScopes": ["AppScope"]
  }
}
  1. 如果只是临时需要,也可以手动删除HAR包中的app.json5文件后再使用。

注意这样可能会影响HAR中某些依赖AppScope配置的功能,需要确保module.json5中包含所有必要的配置项。

回到顶部