鸿蒙开发:hvigorw,编译构建,实现命令打包

程序员一鸣
• 阅读 1

前言

本文基于DevEco Studio 5.0.5 Release

上篇文章,我们简单的了解了hvigorw,知道了hvigorw是鸿蒙开发中一个不可缺少的构建利器,除了正常的帮我们执行一些流程化操作之外,hvigorw还担负着一个非常重要的角色,那就是搭建流水线时的编译各个hap、hsp、har以及app的重任,少了它,那么流水线就无法正常运行。

什么是流水线?正常情况下,我们构建一个应用或者元服务,都是通过DevEco Studio开发工具进行操作,常见的就是通过顶部导航栏中Build选项,打出我们最终的上架包,或者hap、har、hsp包。

鸿蒙开发:hvigorw,编译构建,实现命令打包

流水线,就是可以让我们使用命令行工具来调用Hvigor任务进行构建,通过命令行的方式构建应用或元服务,这样做的好处就是,不用再依赖DevEco Studio开发工具,便于我们构筑CI(Continuous Integration)流水线,按照自己的计划时间,自动化的构建HAP/APP、签名、安装运行等操作。

一句话简明扼要,就是可以不用人工再去打包了,可以使用工具进行自动化签名打包。

而且,有了hvigorw,我们可以自建自己的应用下载平台,可以和蒲公英等三方平台一样,进而和Android类似,直接打包给到测试同学,再也不用在测试阶段提交到华为应用市场了。就凭这一点,hvigorw,对于我们而言,就不得不去重视,毕竟华为应用市场有一个审核机制,提交的测试包,因为审核时间,交到测试人员手里,往往没有那么及时,有一个时间差存在,就导致了功能迟迟无法验证,浪费了很多的时间。

如何搭建自己的应用测试平台,后续会给大家一一讲解,这都是后话了,本篇文章,我们还是继续了解hvigorw,重点知晓它的几个命令,方便后续的流水线搭建。

hvigorw常见命令

hvigorw在执行相关命令的时候,需要注意,那就是需要结合品类来去执行,否则会执行失败,那么什么是品类呢?

在根项目中的build-profile.json5文件下的products字段就是品类信息。

鸿蒙开发:hvigorw,编译构建,实现命令打包

clean

clean命令主要是负责清理构建产物build目录,在日后的自动化打包中,我们第一个命令就是执行的它。

执行命令如下:

如果你采用的是DevEco Studio开发工具自带的,那么命令如下:

node + hvigorw.js路径 + -p product=品类名字 clear

首先,node如果你配置了环境变量,就可以这么用,没有,还请补全路径,比如。

如果你采用的是Command Line Tools,并且配置了环境变量,可以直接省去node。

hvigorw + -p product=品类名字 clear

举例如下,这样就完成了clean命令执行。

鸿蒙开发:hvigorw,编译构建,实现命令打包

assembleHar

assembleHar命令主要是构建一个Har包,执行这个命令的时候,你需要指定要构建哪个模块,执行格式如下:

命令操作

DevEco Studio开发工具中:

node + hvigorw.js + --mode module -p product=品类信息 -p module=模块 assembleHar

Command Line Tools

hvigorw + --mode module -p product=品类信息 -p module=模块名 assembleHar

举例如下,这样就完成了Har包生成。

鸿蒙开发:hvigorw,编译构建,实现命令打包

同样的,在针对模块时,无论是静态共享包还是动态共享包,也需要携带上品类信息,也就是模块名@品类信息。

开启Build Analyzer构建分析

如果说你要在构建包的时候,要对静态包进行开启Build Analyzer构建分析,那么我们追加命令,通过--analyze=normal,来实现简单打点数据进行分析。

执行命令如下,在后面追加即可:

鸿蒙开发:hvigorw,编译构建,实现命令打包

在Build中,你就可以进行数据分析了:

鸿蒙开发:hvigorw,编译构建,实现命令打包

鸿蒙开发:hvigorw,编译构建,实现命令打包

执行完命令后,最终会在静态共享包中,生成一个har包,目录如下:

鸿蒙开发:hvigorw,编译构建,实现命令打包

assembleHsp

assembleHsp命令主要是构建一个Hsp包,和静态包一致,无非就是把assembleHar换成assembleHsp,还有就是模块名和品类信息需要切换。

鸿蒙开发:hvigorw,编译构建,实现命令打包

执行完命令后,最终会在动态共享包中,生成一个hsp包,目录如下:

鸿蒙开发:hvigorw,编译构建,实现命令打包

assembleHap

hap类型一般是我们的主模块,也就是type为entry类型的模块,执行assembleHap的命令和上面一致,也是更改为assembleHap即可,但是模块名和品类信息需要切换。

鸿蒙开发:hvigorw,编译构建,实现命令打包

执行完命令后,最终会在主模块中,生成一个hap包,目录如下:

鸿蒙开发:hvigorw,编译构建,实现命令打包

assembleApp

assembleApp和上面的命令有一点区别,上面的命令只是单独生成某一种类型的包,但并不最终的上架包,而最终的上架包都是以.app结尾的;执行assembleApp命令,不用在指定模块,只指定品类信息即可。

鸿蒙开发:hvigorw,编译构建,实现命令打包

执行完之后,就会在项目下产生一个build目录,里面的.app就是我们最终的上架或者测试包。

鸿蒙开发:hvigorw,编译构建,实现命令打包

相关总结

以上呢,就是hvigorw几个常见的命令,主要用于构建不同类型的包,也是接下来流水线打包,几个比较常用的命令,所以拿来重点概述了,当然了hvigorw还有一些常见的命令,大家直接看官网介绍即可,不在多赘述。

有一点需要注意,所谓的品类信息中,有定义的签名信息,这一点不可忽视。

本文标签:鸿蒙开发工具/DevEco Studio

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
Vue CLI 3搭建vue+vuex 最全分析
一、介绍VueCLI是一个基于Vue.js进行快速开发的完整系统。有三个组件:CLI:@vue/cli 全局安装的npm包,提供了终端里的vue命令(如:vuecreate、vueserve、vueui等命令)CLI服务:@vue/cliservice是一个开发环境依赖。构建于 we
Easter79 Easter79
3年前
tar命令常用选项
tar命令简介根据tar的手册上的说明,tar主要是一个用来归档打包文件的工具软件。tar命令是linux中比较复杂的命令,主要是因为这个命令的参数比较多而且不太好记忆。个人认为没有必要去死记硬背这些参数,可以通过查看help帮助,同时利用cheat命令来帮助自己可以在日常工作中使用tar命令。tar常用参数
SpringBoot内置tomcat启动过程及原理
SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,同时也提供了很多便捷的功能,比如内置tomcat就是其中一项,他让我们省去了搭建tomcat容器,生成war,部署,启动tomcat。因为内置了启动容器,应用程序可以直接通过Maven命令将项目编译成可执行的jar包,通过javajar命令直接启动,不需要再像以前一样,打包成War包,然后部署在Tomcat中。那么内置tomcat是如何实现的呢
Stella981 Stella981
3年前
Gradle的构建过程都不会?带你全面了解Android如何自定义Gradle插件
目前Android工程的默认构建工具为Gradle,我们在构建APK的时候往往会执行./gradlewassembleDebug这样的命令。。那么这个命令到底代表着什么含义呢?命令的执行究竟是在做什么事情呢?我们能不能在命令执行的过程中做一些自己的操作呢?接下来我们来具体的进行分析。Gradle的构建过程G
Wesley13 Wesley13
3年前
3、electron打包生成exe文件
打包方式1:DOS窗口命令打包DOS下,输入 npminstallelectronpackagerg全局安装我们的打包神器:cnpminstallelectronpackagerg在项目文件夹下面,也就是根目录下面打开DOS执行打包命令:electronpacka
Stella981 Stella981
3年前
Linux企业运维人员最常用150个命令汇总 [转]
近来发现新手学习Linux记不住命令,不会分类、不会筛选重点,胡子眉毛一把抓当然记不住了。特别整理Linux运维最常用150个命令和大家分享,大家学习命令不用在盲目了,根据分类,然后逐步学习!命令功能说明线上查询及帮助命令(2个)man查看命令帮助,命令的词典,更复杂的还有info,但不常用。help查看Linux内置命令的帮
Wesley13 Wesley13
3年前
Ubuntu Server dpkg 命令
dpkg命令应该算是比较底层的命令,几个最常用的dpkg命令:1\.查看某个软件包是否已经安装:dpkg–l<package $ dpkg –l apt$ dpkg –l apache    2. 查看某个软件包中都包含哪些文件:dpkg–L<package$ dpkg –L whiptail
小万哥 小万哥
2年前
Makefile常用命令详解
在软件开发中,Makefile是一种非常常用的自动化工具。Makefile文件包含了一系列规则,用于编译、打包、测试等操作,可以帮助我们自动化这些操作,提高项目的管理和编译效率。本文将介绍Makefile中常用的命令,以及如何使用它们来编译和管理项目mak
少湖说 少湖说
7个月前
鸿蒙Flutter实战:07-混合开发
鸿蒙Flutter实战:混合开发鸿蒙Flutter混合开发主要有两种形式。1.基于har将fluttermodule打包成har包,在原生鸿蒙项目中,以har包的方式引入。其优点是主项目开发者可以不关注Flutter实现,不需要安装配置Flutter开发环
程序员一鸣 程序员一鸣
13小时前
鸿蒙开发:hvigorw,一个你不得不去了解的神器
这篇文章,最主要的就是学会hvigorw的简单使用,能够正确的显示出版本号即可,至于两种用法,都可以使用,主要还是看大家自身需要。