Gradle 工程适配为 Hvigor 工程
作者:坚果
团队:坚果派
公众号:“大前端之旅”
润开鸿技术专家,华为 HDE,InfoQ 签约作者,OpenHarmony 布道师,擅长 HarmonyOS 应用开发、熟悉服务卡片开发,在“战码先锋”活动中作为大队长,累计培养三个小队长,带领 100+队员完成 Pr 的提交合入。
欢迎通过主页或者私信联系我,加入坚果派,一起学习 OpenHarmony/HarmonyOS 应用开发。
目前我们创建的项目更多是 API9 的项目,但是也有一些项目是 Api7 的版本,这个时候我们就需要做一些适配,接下来就说一下具体是如何适配的。
原 OpenHarmony API 7 的工程采用的是 Gradle 自动化构建工具,而 OpenHarmony API 9 的工程则采用 Hvigor 自动化构建工具,由于 Gradle 构建工具和 Hvigor 构建工具的配置文件不同,因此,对于采用 Gradle 编译构建的历史工程,需要手动进行适配,以适用于使用 Hvigor 工具进行编译构建。
当然这里需要注意的一点就是 OpenHarmony API 7 的工程属于 FA 模型,因此将工程升级到 OpenHarmony API 9 时,也只能升级为 FA 模型,不支持升级为 Stage 模型。
这里提供两种方法
适配方法一
1.使用 DevEco Studio 创建一个 OpenHarmony 新工程,请注意:
Bundle name:请与需要适配的历史工程的 Bundle name 保持一致。待适配工程的 Bundle name 字段可在模块目录下的 config.json 文件中进行查阅。
Compile SDK:请选择将要适配的目标 API 版本,支持选择 9。
Model:请选择 FA。
Language:选择与待适配工程使用的代码语言保持一致。
2.等待工程 ohpm install 执行完成后,删除 entry 下的 src 目录,请注意,其它配置文件不要删除。
3.将待适配工程 entry 模块下的 src 目录,拷贝到上述工程的 entry 文件夹下。如果待适配工程存在多个模块,可拷贝上述整个 entry 模块文件夹并修改模块名,然后将待适配模块中的源码和资源文件夹,替换到该模块下即可。
4.检查模块下 src\main\resources\base 目录是否存在 layout 和 graphic 文件夹,如果有请删除;没有请跳过该操作。
5.打开模块下的 build-profile.json5 文件,删除“ohosTest” Target。
6.如果是 ArkTS 工程,请修改 ArkTS 源码文件中的引用包的后缀名,由 import xx from‘xx.ets’修改为 import xx from‘xx’,去掉.ets 后缀名。
7.单击 File > Sync and Refresh Project 进行同步,等待工程同步完成。
至此,OpenHarmony 历史工程便适配完成,您可以通过单击 Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建 HAP。
适配方法二
1.进入 OpenHarmony 工程所在文件夹
在本地电脑中,进入 OpenHarmony 工程所在文件夹。
2.在工程根目录下,修改相关配置文件。
1.删除 Gradle 相关的文件及缓存文件,如下图蓝色框所示的文件及文件夹。
2.打开工程根目录下 local.properties 文件,并根据实际路径进行修改。
3.新建一个文本文件,命名修改为“hvigorfile.ts”。
4.打开 hvigorfile.ts 文件,写入如下脚本信息。写入后,保存并关闭文件即可。
5.新建 oh-package.json5 文件,写入如下脚本信息,其中:name 和 version 字段,请根据实际进行填写,其余字段保持不变。写入后,保存并关闭文件即可。
6.新建一个文本文件,命名修改为“build-profile.json5”。
7.打开 build-profile.json5 文件,写入如下脚本信息,其中 compileSdkVersion 和 compatibleSdkVersion 请修改为 9,
8.工程需要添加 ohpm 编译构建四件套 hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js。可新建一个 API 9 的新工程,拷贝新工程中 hvigorw、hvigorw.bat、hvigor-config.json5、hvigor-wrapper.js 四项配置文件,粘贴到历史工程文件夹对应位置。
3.进入模块目录下,修改相关配置文件
进入模块目录下,修改相关配置文件。如有多个模块,请逐一修改。
1.删除 build 文件夹、build.gradle 和 progurad-rules.pro 文件。
2.检查模块下 src\main\resources\base 目录是否存在 layout 和 graphic 文件夹,如果有请删除;没有请跳过该操作。
3.新建一个文本文件,命名修改为“oh-package.json5”。
4.打开 oh-package.json5 文件,写入如下脚本信息。
5.新建一个文本文件,命名修改为“hvigorfile.ts”。
6.打开 hvigorfile.ts 文件,写入如下脚本信息。写入后,保存并关闭文件即可。
7.新建一个文本文件,命名修改为“build-profile.json5”。
8.打开 build-profile.json5 文件,写入如下脚本信息。写入后,保存并关闭文件即可。
4.修改 ArkTS 源码文件中的引用包的后缀名
如果是 ArkTS 工程,请修改 ArkTS 源码文件中的引用包的后缀名,由 import xx from‘xx.ets’修改为 import xx from‘xx’,去掉.ets 后缀名。
至此,OpenHarmony 历史工程便适配完成,您可以通过单击 Build > Build Hap(s)/App(s) > Build Hap(s)验证是否可以正常编译构建 HAP。
版权声明: 本文为 InfoQ 作者【坚果】的原创文章。
原文链接:【http://xie.infoq.cn/article/6635957ef9052d686e8c84ab6】。文章转载请联系作者。
评论