# 打包工具组件 - [简介](#section_introduction) - [目录](#section_directory) - [约束](#section_constraints) - [使用说明](#section_usage_instruction) - [相关仓](#section_related_repo) ## 简介 本组件包含打包、拆包和包解析三个功能模块: - 打包模块有将资源文件打包成hap包,和将多个hap包打包成app包两种模式。 - 拆包模块有从app包中拆出所有hap包,和从hap包中拆出json文件两种模式。 - 包解析模块可以根据对应解析模式,解析出指定设备类型下的hap包列表、hap包信息、签名信息等。 ## 目录 ``` /developtools/packing_tool ├── adapter │ ├── bundles # packing_tool工具的版本信息 │ └── ohos # packing_tool工具实现的核心代码 └── META-INF ├── collectingbininfo_tool # bin文件转成hap文件的外部依赖配置文件 ├── packingbin_tool # hap文件转成bin文件的外部依赖配置文件 └── unpacking_tool # 解析hap文件的外部依赖配置文件 ``` ## 约束 1.当打包的app包依赖hap包时,需要hap包打包执行完毕后,再执行app包的打包命令。可根据命令执行的返回值来控制。 2.如果命令中多次出现同一个命令,则取其最后一次出现的值,如--mode hap --mode app,即mode值为app。 3.如果同一命令中跟多个参数,则取距离其最近的值。如--mode hap app,mode值为hap。 4.传入的参数路径不能以“--”开头,避免与指令冲突。 5.指令必须是小写的,如:--mode,文件后缀不区分大小写。 6.建议命令中传入绝对路径。 7.打包完成后,res/下的文件会放到assets/entry/resources目录下。 assets/目录下的文件将被放入assets/目录下。 lib/下的文件将被放入libs/目录下。 maple-so/下的文件将被放入maple/目录下。 resource.index的文件将被放入assets/entry/目录下。 ## 使用说明 打包hap包命令示例: ``` java -jar hmos_app_packing_tool.jar --mode