CN115617384A - 一种应用生成方法和装置 - Google Patents
一种应用生成方法和装置 Download PDFInfo
- Publication number
- CN115617384A CN115617384A CN202210479742.1A CN202210479742A CN115617384A CN 115617384 A CN115617384 A CN 115617384A CN 202210479742 A CN202210479742 A CN 202210479742A CN 115617384 A CN115617384 A CN 115617384A
- Authority
- CN
- China
- Prior art keywords
- project
- compiling
- component description
- description file
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用生成方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据应用的主工程的配置,对应用的业务组件创建对应的子工程;按照预设编译模式编译子工程,以生成子工程的编译结果,子工程的编译结果包括动态特性模块的编译结果;对主工程按照预设编译模式进行编译,并通过依赖包管理工具获取主工程所依赖的子工程中动态特性模块的编译结果,基于主工程的编译结果和所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成应用。该实施方式能够使得各个业务模块分别独立为单独的代码工程,防止互相干扰,降低代码工程的维护成本,降低调试编译的时间,提高研发效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用生成方法和装置。
背景技术
目前应用生成方案为将各个业务模块放在一个代码工程中,统一进行调试和编译打包,产出一个整体的应用工程文件,并通过应用工程文件来生成应用。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
各个业务模块之间无法独立,互相干扰,代码工程的维护成本大,调试编译的时间长,研发效率低。
发明内容
有鉴于此,本发明实施例提供一种应用生成方法和装置,能够使得各个业务模块分别独立为单独的代码工程,防止互相干扰,降低代码工程的维护成本,降低调试编译的时间,提高研发效率。
为实现上述目的,根据本发明实施例的一个方面,提供了一种应用生成方法。
一种应用生成方法,包括:根据应用的主工程的配置,对所述应用的业务组件创建对应的子工程,所述主工程包括所述应用的主模块,所述子工程包括所述应用的动态特性模块;按照预设编译模式编译所述子工程,以生成所述子工程的编译结果,所述子工程的编译结果包括所述动态特性模块的编译结果;对所述主工程按照所述预设编译模式进行编译,并通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果,基于所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成所述应用。
可选地,所述按照预设编译模式编译所述子工程,以生成所述子工程的编译结果之后,包括:将所述动态特性模块的编译结果上传至所述依赖包管理工具;所述通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果之前,包括:对所述主工程配置所依赖的子工程中动态特性模块的编译结果。
可选地,所述通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果,基于所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果进行编译结果集成,包括:通过组件拉取任务,将所述所依赖的子工程中动态特性模块的编译结果拉取到所述主工程的编译结果所在的目录,在所述主工程的编译结果所在的目录进行所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果的集成。
可选地,在所述预设编译模式为所述发布编译模式的情况下,所述将所述动态特性模块的编译结果上传至所述依赖包管理工具之前,包括:对所述子工程的编译结果进行解压,得到所述动态特性模块的编译结果。
可选地,所述基于所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成所述应用,包括:根据所述目录中所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果,生成主组件描述文件;将所述主组件描述文件、所述所依赖的子工程中动态特性模块的编译结果作为工程文件的生成要素,用来生成待签名工程文件;通过签名工具对所述待签名工程文件进行签名,得到所述应用的工程文件,以通过所述应用的工程文件生成所述应用。
可选地,根据所述目录中所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果,生成主组件描述文件,包括:对所述动态特性模块的编译结果进行解压,得到第一组件描述文件;对所述主工程的编译结果解压到第一解压目录,从所述第一解压目录中查找预设格式的文件,对所述预设格式的文件解压到第二解压目录,从所述第二解压目录得到第二组件描述文件;根据所述第一组件描述文件和所述第二组件描述文件,生成主组件描述文件,所述第一组件描述文件、所述第二组件描述文件、所述主组件描述文件为基于指定数据格式的组件描述文件。
可选地,还包括预先生成主组件描述文件模板,所述主组件描述文件模板和所述指定数据格式的组件描述文件均包括多个类型的节点;所述根据所述第一组件描述文件和所述第二组件描述文件,生成主组件描述文件,包括:从所述第一组件描述文件和所述第二组件描述文件的节点中确定符合预设条件的所述指定数据格式的对象,将确定的所述指定数据格式的对象保存至所述主组件描述文件模板中的对象节点中,所述对象节点为与所述第一组件描述文件或所述第二组件描述文件的节点类型相同的节点;以及,将所述第二组件描述文件中指定类型节点的内容保存至所述主组件描述文件模板所述指定类型的节点中;由保存至所述指定数据格式的对象和所述指定类型节点的内容的所述主组件描述文件模板生成所述主组件描述文件。
可选地,在所述动态特性模块的编译结果包括卡片快照的情况下,用来生成所述待签名工程文件的所述工程文件的生成要素还包括卡片快照压缩包;所述生成主组件描述文件之前,包括:创建第一卡片快照目录,并将各所述动态特性模块的编译结果中的卡片快照保存至所述第一卡片快照目录中;所述生成主组件描述文件之后,包括:创建第二卡片快照目录,并将所述第一卡片快照目录中的卡片快照保存至所述第二卡片快照目录中,通过所述第二卡片快照目录生成所述卡片快照压缩包;删除所述第一卡片快照目录和所述第二卡片快照目录。
根据本发明实施例的另一方面,提供了一种应用生成装置。
一种应用生成装置,包括:工程创建模块,用于根据应用的主工程的配置,对所述应用的业务组件创建对应的子工程,所述主工程包括所述应用的主模块,所述子工程包括所述应用的动态特性模块;子工程编译模块,用于按照预设编译模式编译所述子工程,以生成所述子工程的编译结果,所述子工程的编译结果包括所述动态特性模块的编译结果;编译结果集成模块,用于对所述主工程按照所述预设编译模式进行编译,并通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果,基于所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成所述应用。
可选地,还包括编译结果上传模块,用于:在所述按照预设编译模式编译所述子工程,以生成所述子工程的编译结果之后,将所述动态特性模块的编译结果上传至所述依赖包管理工具;在所述通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果之前,对所述主工程配置所依赖的子工程中动态特性模块的编译结果。
可选地,所述编译结果集成模块还用于:通过组件拉取任务,将所述所依赖的子工程中动态特性模块的编译结果拉取到所述主工程的编译结果所在的目录,在所述主工程的编译结果所在的目录进行所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果的集成。
可选地,在所述预设编译模式为所述发布编译模式的情况下,所述子工程编译模块还用于:对所述子工程的编译结果进行解压,得到所述动态特性模块的编译结果。
可选地,所述编译结果集成模块还用于:根据所述目录中所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果,生成主组件描述文件;将所述主组件描述文件、所述所依赖的子工程中动态特性模块的编译结果作为工程文件的生成要素,用来生成待签名工程文件;通过签名工具对所述待签名工程文件进行签名,得到所述应用的工程文件,以通过所述应用的工程文件生成所述应用。
可选地,所述编译结果集成模块还用于:对所述动态特性模块的编译结果进行解压,得到第一组件描述文件;对所述主工程的编译结果解压到第一解压目录,从所述第一解压目录中查找预设格式的文件,对所述预设格式的文件解压到第二解压目录,从所述第二解压目录得到第二组件描述文件;根据所述第一组件描述文件和所述第二组件描述文件,生成主组件描述文件,所述第一组件描述文件、所述第二组件描述文件、所述主组件描述文件为基于指定数据格式的组件描述文件。
可选地,还包括预先生成主组件描述文件模板,所述主组件描述文件模板和所述指定数据格式的组件描述文件均包括多个类型的节点;所述编译结果集成模块还用于:从所述第一组件描述文件和所述第二组件描述文件的节点中确定符合预设条件的所述指定数据格式的对象,将确定的所述指定数据格式的对象保存至所述主组件描述文件模板中的对象节点中,所述对象节点为与所述第一组件描述文件或所述第二组件描述文件的节点类型相同的节点;以及,将所述第二组件描述文件中指定类型节点的内容保存至所述主组件描述文件模板所述指定类型的节点中;由保存至所述指定数据格式的对象和所述指定类型节点的内容的所述主组件描述文件模板生成所述主组件描述文件。
可选地,在所述动态特性模块的编译结果包括卡片快照的情况下,用来生成所述待签名工程文件的所述工程文件的生成要素还包括卡片快照压缩包;所述编译结果集成模块还用于:在所述生成主组件描述文件之前,创建第一卡片快照目录,并将各所述动态特性模块的编译结果中的卡片快照保存至所述第一卡片快照目录中;在所述生成主组件描述文件之后,创建第二卡片快照目录,并将所述第一卡片快照目录中的卡片快照保存至所述第二卡片快照目录中,通过所述第二卡片快照目录生成所述卡片快照压缩包;删除所述第一卡片快照目录和所述第二卡片快照目录。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的应用生成方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的应用生成方法。
上述发明中的一个实施例具有如下优点或有益效果:根据应用的主工程的配置,对应用的业务组件创建对应的子工程,主工程包括应用的主模块,子工程包括应用的动态特性模块;按照预设编译模式编译子工程,以生成子工程的编译结果,子工程的编译结果包括动态特性模块的编译结果;对主工程按照预设编译模式进行编译,并通过依赖包管理工具获取主工程所依赖的子工程中动态特性模块的编译结果,基于主工程的编译结果和所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成应用。能够使得各个业务模块分别独立为单独的代码工程,防止互相干扰,降低代码工程的维护成本,降低调试编译的时间,提高研发效率。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的应用生成方法的主要步骤示意图;
图2是根据本发明一个实施例的应用生成方法的流程示意图;
图3是根据本发明一个实施例的调试编译模式时生成工程文件的流程示意图;
图4是根据本发明一个实施例的发布编译模式时生成工程文件的流程示意图;
图5是根据本发明一个实施例的应用生成装置的主要模块示意图;
图6是本发明实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明一个实施例的应用生成方法的主要步骤示意图。
如图1所示,本发明一个实施例的应用生成方法主要包括如下的步骤S101至步骤S103。
步骤S101:根据应用的主工程的配置,对应用的业务组件创建对应的子工程,主工程包括应用的主模块,子工程包括应用的动态特性模块。
应用可以为安卓应用、IOS(一种移动操作系统)应用、鸿蒙(Harmony OS)应用等,鸿蒙是一款基于微内核的面向全场景的分布式操作系统。
步骤S102:按照预设编译模式编译子工程,以生成子工程的编译结果,子工程的编译结果包括动态特性模块的编译结果。
其中,预设编译模式包括调试编译模式(即Debug编译模式)和发布编译模式(即Release编译模式)。
按照预设编译模式编译子工程,以生成子工程的编译结果之后,可以包括:将动态特性模块的编译结果上传至依赖包管理工具。
步骤S103:对主工程按照预设编译模式进行编译,并通过依赖包管理工具获取主工程所依赖的子工程中动态特性模块的编译结果,基于主工程的编译结果和所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成应用的工程文件。
通过依赖包管理工具获取主工程所依赖的子工程中动态特性模块的编译结果之前,可以包括:对主工程配置所依赖的子工程中动态特性模块的编译结果。
在预设编译模式为调试编译模式或发布编译模式的情况下,通过依赖包管理工具获取主工程所依赖的子工程中动态特性模块的编译结果,基于主工程的编译结果和所依赖的子工程中动态特性模块的编译结果进行编译结果集成,可以包括:通过组件拉取任务,将所依赖的子工程中动态特性模块的编译结果拉取到主工程的编译结果所在的目录,在主工程的编译结果所在的目录进行主工程的编译结果和所依赖的子工程中动态特性模块的编译结果的集成。组件拉取任务为用于拉取组件的编译结果的任务。
在预设编译模式为发布编译模式的情况下,将动态特性模块的编译结果上传至依赖包管理工具之前,可以包括:对子工程的编译结果进行解压,得到动态特性模块的编译结果。
基于主工程的编译结果和所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成应用,可以包括:根据目录中主工程的编译结果和所依赖的子工程中动态特性模块的编译结果,生成主组件描述文件;将主组件描述文件、所依赖的子工程中动态特性模块的编译结果作为工程文件的生成要素,用来生成待签名工程文件;通过签名工具对待签名工程文件进行签名,得到应用的工程文件,以通过应用的工程文件生成应用。
根据目录中主工程的编译结果和所依赖的子工程中动态特性模块的编译结果,生成主组件描述文件,可以包括:对动态特性模块的编译结果进行解压,得到第一组件描述文件;对主工程的编译结果解压到第一解压目录,从第一解压目录中查找预设格式的文件,对预设格式的文件解压到第二解压目录,从第二解压目录得到第二组件描述文件;根据第一组件描述文件和第二组件描述文件,生成主组件描述文件,第一组件描述文件、第二组件描述文件、主组件描述文件为基于指定数据格式的组件描述文件。其中,指定数据格式可以包括JSON格式(一种轻量级的数据交换格式)、XML格式(可扩展标记语言)等。
还包括预先生成主组件描述文件模板,主组件描述文件模板和指定数据格式的组件描述文件均包括多个类型的节点。
根据第一组件描述文件和第二组件描述文件,生成主组件描述文件,可以包括:从第一组件描述文件和第二组件描述文件的节点中确定符合预设条件的指定数据格式的对象,将确定的指定数据格式的对象保存至主组件描述文件模板中的对象节点中,对象节点为与第一组件描述文件或第二组件描述文件的节点类型相同的节点;以及,将第二组件描述文件中指定类型节点的内容保存至主组件描述文件模板指定类型的节点中;由保存至指定数据格式的对象和指定类型节点的内容后的主组件描述文件模板生成主组件描述文件。
在动态特性模块的编译结果包括卡片快照的情况下,用来生成待签名工程文件的工程文件的生成要素还可以包括卡片快照压缩包。
生成主组件描述文件之前,可以包括:创建第一卡片快照目录,并将各动态特性模块的编译结果中的卡片快照保存至第一卡片快照目录中;生成主组件描述文件之后,包括:创建第二卡片快照目录,并将第一卡片快照目录中的卡片快照保存至第二卡片快照目录中,通过第二卡片快照目录生成卡片快照压缩包;删除第一卡片快照目录和第二卡片快照目录。
图2是根据本发明一个实施例的应用生成方法的流程示意图。
如图2所示,在一个实施例中,根据应用的主工程的配置,对应用的业务组件创建对应的子工程,主工程包括应用的主模块,子工程包括应用的动态特性模块,具体地,应用的工程中包括一个主工程,可以不包括子工程,也可以包括一个或多个子工程。主工程(即App工程)中只包括一个Entry模块(即主模块),不包含Feature模块(即动态特性模块)。各业务模块(即业务组件)创建各自的子工程,包括一个Entry模块,和业务的Feature模块,子工程中的Entry模块不包括任务业务代码,业务代码都写在Feature模块里,同时每个子工程中的Entry模块都和主工程的Entry模块配置保持一致,配置可以包括应用的包名(即应用的唯一标识)、应用的版本信息、应用的编译SDK版本配置等。同时,主工程和子工程配置在包名和版本信息上的配置要保持一致。如图2所示,该主工程包括3个子工程,分别为子工程1、子工程2、子工程3,子工程1包括主模块和一个Feature模块(即业务功能1模块),子工程2包括主模块和一个Feature模块(即业务功能2模块),子工程3包括主模块和一个Feature模块(即业务功能3模块)。
在一个实施例中,将按照预设编译模式编译子工程,以生成子工程的编译结果(即图2中的业务功能1模块的编译结果、业务功能2模块的编译结果、业务功能3模块的编译结果),子工程的编译结果包括动态特性模块的编译结果,对主工程按照预设编译模式进行编译,基于主工程的编译结果和所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成应用的工程文件。
图3是根据本发明一个实施例的调试编译模式时生成工程文件的流程示意图。
如图3所示,在一个实施例中,以生成安装于鸿蒙系统的应用的工程文件为例,预设编译模式可以为Debug编译模式。按照Debug编译模式编译子工程,以生成子工程的编译结果,子工程的编译结果包括动态特性模块的编译结果,将动态特性模块的编译结果上传至依赖包管理工具。具体地,子工程通过assembleDebug命令执行Debug编译任务,会在子工程的指定目录下得到Debug编译产物,编译产物又称编译结果,Debug编译产物包括Entry模块的编译产物和Feature模块的编译产物(动态特性模块的编译结果),Feature模块的编译产物为hap格式的文件,用于本地安装调试使用。将Feature模块的编译产物上传至maven私服,子工程的流程到此结束。其中,maven私服是一个依赖包管理工具。
在一个实施例中,对主工程配置所依赖的子工程中动态特性模块的编译结果,通过组件拉取任务,将所依赖的子工程中动态特性模块的编译结果拉取到主工程的编译结果所在的目录,在主工程的编译结果所在的目录进行主工程的编译结果和所依赖的子工程中动态特性模块的编译结果的集成。具体地,在主工程中通过编写Gradle插件配置对各个组件Debug编译产物(即动态特性模块的编译结果)的依赖。主工程通过assembleDebug命令执行Debug编译任务,生成主工程的编译结果。通过resolveHaps命令执行组件拉取任务,将所依赖的Feature模块的编译产物拉取到主工程编译产物所在的目录(即图3中的指定目录),以完成编译产物的集成,生成应用的Debug编译模式的工程文件,应用的Debug编译模式的工程文件可以用于开发人员进行应用的安装。
图4是根据本发明一个实施例的发布编译模式时生成工程文件的流程示意图。
如图4所示,在一个实施例中,以生成安装于鸿蒙系统的应用的工程文件为例,预设编译模式可以为Release编译模式。按照Release编译模式编译子工程,以生成子工程的编译结果,对子工程的编译结果进行解压,得到动态特性模块的编译结果,将动态特性模块的编译结果上传至依赖包管理工具。具体地,子工程通过signReleaseApp命令按照Release编译模式编译,生成子工程的编译结果,子工程的编译结果为app格式的文件,解压子工程的app文件,从中获取Feature模块的编译产物(即动态特性模块的编译结果),Feature模块的编译产物为hap格式的文件。将Feature模块的编译产物上传至maven私服,子工程的流程到此结束。
在一个实施例中,对主工程配置所依赖的子工程中动态特性模块的编译结果。通过组件拉取任务,将所依赖的子工程中动态特性模块的编译结果拉取到主工程的编译结果所在的目录,在主工程的编译结果所在的目录进行主工程的编译结果和所依赖的子工程中动态特性模块的编译结果的集成。具体地,在主工程中通过编写Gradle插件配置对各个组件Release编译产物(即动态特性模块的编译结果)的依赖。在主工程中通过signReleaseApp命令执行Release构建任务(即按照Release编译模式进行编译),生成主工程的编译结果,主工程的编译结果为app格式的文件。通过resolveHaps命令执行组件拉取任务拉取Feature模块的编译产物并放在主工程编译产物所在的目录(即图4中的指定目录)。此时该目录下有主工程的编译产物(如Entry.app文件)和各个Feature模块的编译产物(如Feature.hap文件),在主工程的编译结果所在的目录进行主工程的编译结果和所依赖的子工程中动态特性模块的编译结果的集成。
在一个实施例中,预先生成主组件描述文件模板;对动态特性模块的编译结果进行解压,得到第一组件描述文件;对主工程的编译结果解压到第一解压目录,从第一解压目录中查找预设格式的文件,对预设格式的文件解压到第二解压目录,从第二解压目录得到第二组件描述文件;根据第一组件描述文件和第二组件描述文件,生成主组件描述文件。具体地,新建一个pack.info文件(即主组件描述文件模板),用来合并各个组件的pack.info信息。遍历主工程编译产物所在的目录,筛选出以hap结尾的文件(即动态特性模块的编译结果)并进行解压,在解压后的目录里找到pack.info文件(即第一组件描述文件,用于描述当前hap文件的配置信息)。遍历主工程编译产物所在的目录,筛选出以app结尾的文件(即主工程的编译结果)并进行解压,在解压目录(即第一解压目录)中找到里面的hap格式的文件(即预设格式的文件),解压该hap格式的文件,在该文件的解压目录(即第二解压目录)下找到pack.info文件(即第二组件描述文件)。根据第一组件描述文件和第二组件描述文件,生成主组件描述文件。
在一个实施例中,从第一组件描述文件和第二组件描述文件的节点中找出符合预设条件的JSON对象,将找出的JSON对象放入主组件描述文件模板中与第一组件描述文件或第二组件描述文件的节点类型相同的节点中;以及,将第二组件描述文件中指定类型节点的内容放入主组件描述文件模板指定类型的节点中;由放入JSON对象和指定类型节点的内容的主组件描述文件模板生成主组件描述文件。其中,第一组件描述文件、第二组件描述文件、主组件描述文件为基于JSON数据结构的组件描述文件,主组件描述文件模板和JSON数据结构的组件描述文件均包括多个类型的节点,例如summary节点和packages数组节点,summary节点下包括app节点和modules数组节点。具体地,对于第一组件描述文件和第二组件描述文件,遍历其中的modules数组内的节点,在“distro”节点内找到“moduleType”等于“feature”的JSON对象(即符合预设条件的JSON对象),将符合该条件的整个节点放到主组件描述文件模板的modules数组节点内;遍历packages数组内的节点,找到“moduleType”等于“feature”的JSON对象(即符合预设条件的JSON对象),将符合该条件的整个节点放到主组件描述文件模板的packages数组节点内;以及,将第二组件描述文件中的app节点(即指定类型节点)内容放在主组件描述文件模板的app节点内。由放入JSON对象和app节点的内容后的主组件描述文件模板生成主pack.info文件(即主组件描述文件)。
在一个实施例中,在动态特性模块的编译结果包括卡片快照的情况下,在生成主组件描述文件之前,创建第一卡片快照目录,并将各动态特性模块的编译结果中的卡片快照保存至第一卡片快照目录中;在生成主组件描述文件之后,创建第二卡片快照目录,并将第一卡片快照目录中的卡片快照保存至第二卡片快照目录中,通过第二卡片快照目录生成卡片快照压缩包;删除第一卡片快照目录。具体地,pack.res文件(即卡片快照压缩包)是桌面卡片快照目录(EntryCard目录)的压缩包,由于EntryCard目录里的内容会根据主pack.info文件的内容进行校验,所以在没有合成主pack.info文件时,创建EntryCard目录编译时会报错。因此,在Feature模块的编译结果包括卡片快照的情况下,在生成主pack.info文件之前,创建tempEntryCard目录(即第一卡片快照目录),将各Feature模块的编译结果中的卡片快照保存至tempEntryCard目录中,在生成主pack.info文件之后,创建EntryCard目录(即第二卡片快照目录),将tempEntryCard内的内容复制到EntryCard里,并删除tempEntryCard目录,执行命令生成pack.res文件,并删除EntryCard目录。其中,可以使用鸿蒙SDK(软件开发工具包)的工具生成pack.res文件,执行命令具体可以为:
java-jar[鸿蒙SDK/toolchains/hmos_app_packing_tool.jar]--mode res--pack-info-path[合成的pack.info文件绝对路径]--entrycard-path[主工程目录/EntryCard]--out-path[指定输出目录/pack.res]--force true
卡片是鸿蒙应用的工程中每个模块可具备的功能,有配置卡片功能才会有快照。
在一个实施例中,将主组件描述文件、卡片快照压缩包、所依赖的子工程中动态特性模块的编译结果作为工程文件的生成要素,用来生成待签名工程文件;通过签名工具对待签名工程文件进行签名,得到应用的工程文件。具体地,将主pack.info文件、pack.res文件、各个组件的hap文件(即所依赖的子工程中动态特性模块的编译结果)作为工程文件的生成要素,通过鸿蒙SDK的工具生成未签名的app文件(即待签名工程文件),执行命令具体可以为:
java-jar[鸿蒙SDK/toolchains/hmos_app_packing_tool.jar]--mode app--hap-path[xxx.hap,xxx.hap]--pack-info-path[合成的pack.info文件绝对路径]--pack-res-path[生成的pack.res文件绝对路径]--out-path[指定输出目录/xxx.app]--forcetrue
通过鸿蒙SDK的工具对未签名的app文件进行签名,生成签名的app文件(即Release编译模式下的应用的工程文件)。其中,Release编译模式下的应用的工程文件为app格式的文件,里面包括各个经过正式签名的hap文件、一个pack.res文件、一个主pack.info文件,pack.res文件是各个服务卡片的快照压缩包,主pack.info文件是各个.hap文件的组件描述文件。签名的执行命令具体可以为:
java-jar[鸿蒙SDK/toolchains/hapsigntoolv2.jar]sign-mode localjks-privatekey[秘钥别名]-inputFile[未签名的app文件绝对路径]-outputFile[签名后的app文件存放的绝对路径]-keystore[.p12签名文件绝对路径]-keystorepasswd[秘钥密码]-keyaliaspasswd[秘钥库中指定别名秘钥的访问口令]-certpath[.cer文件绝对路径]-profile[profile文件绝对路径]-signAlg SHA256withECDSA
其中,p12文件、cer文件、profile文件都是预先申请好的鸿蒙证书文件。
图5是根据本发明一个实施例的应用生成装置的主要模块示意图。
如图5所示,本发明一个实施例的应用生成装置500主要包括:工程创建模块501、子工程编译模块502、编译结果集成模块503。
工程创建模块501,用于根据应用的主工程的配置,对应用的业务组件创建对应的子工程,主工程包括应用的主模块,子工程包括应用的动态特性模块。
子工程编译模块502,用于按照预设编译模式编译子工程,以生成子工程的编译结果,子工程的编译结果包括动态特性模块的编译结果。
编译结果集成模块503,用于对主工程按照预设编译模式进行编译,并通过依赖包管理工具获取主工程所依赖的子工程中动态特性模块的编译结果,基于主工程的编译结果和所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成应用。
在一个实施例中,还可以包括编译结果上传模块,用于:在按照预设编译模式编译子工程,以生成子工程的编译结果之后,将动态特性模块的编译结果上传至依赖包管理工具;在通过依赖包管理工具获取主工程所依赖的子工程中动态特性模块的编译结果之前,对主工程配置所依赖的子工程中动态特性模块的编译结果。
在一个实施例中,编译结果集成模块503具体用于:通过组件拉取任务,将所依赖的子工程中动态特性模块的编译结果拉取到主工程的编译结果所在的目录,在主工程的编译结果所在的目录进行主工程的编译结果和所依赖的子工程中动态特性模块的编译结果的集成。
在一个实施例中,在预设编译模式为发布编译模式的情况下,子工程编译模块502具体用于:对子工程的编译结果进行解压,得到动态特性模块的编译结果。
在一个实施例中,编译结果集成模块503具体用于:根据目录中主工程的编译结果和所依赖的子工程中动态特性模块的编译结果,生成主组件描述文件;将主组件描述文件、所依赖的子工程中动态特性模块的编译结果作为工程文件的生成要素,用来生成待签名工程文件;通过签名工具对待签名工程文件进行签名,得到应用的工程文件,以通过应用的工程文件生成应用。
在一个实施例中,编译结果集成模块503具体用于:对动态特性模块的编译结果进行解压,得到第一组件描述文件;对主工程的编译结果解压到第一解压目录,从第一解压目录中查找预设格式的文件,对预设格式的文件解压到第二解压目录,从第二解压目录得到第二组件描述文件;根据第一组件描述文件和第二组件描述文件,生成主组件描述文件,第一组件描述文件、第二组件描述文件、主组件描述文件为基于指定数据格式的组件描述文件。
在一个实施例中,还包括预先生成主组件描述文件模板,主组件描述文件模板和指定数据格式的组件描述文件均包括多个类型的节点;编译结果集成模块503具体用于:从第一组件描述文件和第二组件描述文件的节点中确定符合预设条件的指定数据格式的对象,将确定的指定数据格式的对象保存至主组件描述文件模板中的对象节点中,对象节点为与第一组件描述文件或第二组件描述文件的节点类型相同的节点;以及,将第二组件描述文件中指定类型节点的内容保存至主组件描述文件模板指定类型的节点中;由保存至指定数据格式的对象和指定类型节点的内容的主组件描述文件模板生成主组件描述文件。
在一个实施例中,在动态特性模块的编译结果包括卡片快照的情况下,用来生成待签名工程文件的工程文件的生成要素还包括卡片快照压缩包;编译结果集成模块503具体用于:在生成主组件描述文件之前,创建第一卡片快照目录,并将各动态特性模块的编译结果中的卡片快照保存至第一卡片快照目录中;在生成主组件描述文件之后,创建第二卡片快照目录,并将第一卡片快照目录中的卡片快照保存至第二卡片快照目录中,通过第二卡片快照目录生成卡片快照压缩包;删除第一卡片快照目录和第二卡片快照目录。
另外,在本发明实施例中应用生成装置的具体实施内容,在上面应用生成方法中已经详细说明了,故在此重复内容不再说明。
图6示出了可以应用本发明实施例的应用生成方法或应用生成装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的应用生成方法一般由服务器605执行,相应地,应用生成装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统700的结构示意图。图7示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括工程创建模块、子工程编译模块、编译结果集成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,工程创建模块还可以被描述为“用于根据应用的主工程的配置,对应用的业务组件创建对应的子工程的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据应用的主工程的配置,对应用的业务组件创建对应的子工程,主工程包括应用的主模块,子工程包括应用的动态特性模块;按照预设编译模式编译子工程,以生成子工程的编译结果,子工程的编译结果包括动态特性模块的编译结果;对主工程按照预设编译模式进行编译,并通过依赖包管理工具获取主工程所依赖的子工程中动态特性模块的编译结果,基于主工程的编译结果和所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成应用。
根据本发明实施例的技术方案,根据应用的主工程的配置,对应用的业务组件创建对应的子工程,主工程包括应用的主模块,子工程包括应用的动态特性模块;按照预设编译模式编译子工程,以生成子工程的编译结果,子工程的编译结果包括动态特性模块的编译结果;对主工程按照预设编译模式进行编译,并通过依赖包管理工具获取主工程所依赖的子工程中动态特性模块的编译结果,基于主工程的编译结果和所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成应用。能够使得各个业务模块分别独立为单独的代码工程,防止互相干扰,降低代码工程的维护成本,降低调试编译的时间,提高研发效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (18)
1.一种应用生成方法,其特征在于,包括:
根据应用的主工程的配置,对所述应用的业务组件创建对应的子工程,所述主工程包括所述应用的主模块,所述子工程包括所述应用的动态特性模块;
按照预设编译模式编译所述子工程,以生成所述子工程的编译结果,所述子工程的编译结果包括所述动态特性模块的编译结果;
对所述主工程按照所述预设编译模式进行编译,并通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果,基于所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成所述应用。
2.根据权利要求1所述的方法,其特征在于,所述按照预设编译模式编译所述子工程,以生成所述子工程的编译结果之后,包括:将所述动态特性模块的编译结果上传至所述依赖包管理工具;
所述通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果之前,包括:对所述主工程配置所依赖的子工程中动态特性模块的编译结果。
3.根据权利要求2所述的方法,其特征在于,所述通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果,基于所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果进行编译结果集成,包括:
通过组件拉取任务,将所述所依赖的子工程中动态特性模块的编译结果拉取到所述主工程的编译结果所在的目录,在所述主工程的编译结果所在的目录进行所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果的集成。
4.根据权利要求3所述的方法,其特征在于,在所述预设编译模式为所述发布编译模式的情况下,所述将所述动态特性模块的编译结果上传至所述依赖包管理工具之前,包括:
对所述子工程的编译结果进行解压,得到所述动态特性模块的编译结果。
5.根据权利要求4所述的方法,其特征在于,所述基于所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成所述应用,包括:
根据所述目录中所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果,生成主组件描述文件;
将所述主组件描述文件、所述所依赖的子工程中动态特性模块的编译结果作为工程文件的生成要素,用来生成待签名工程文件;
通过签名工具对所述待签名工程文件进行签名,得到所述应用的工程文件,以通过所述应用的工程文件生成所述应用。
6.根据权利要求5所述的方法,其特征在于,根据所述目录中所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果,生成主组件描述文件,包括:
对所述动态特性模块的编译结果进行解压,得到第一组件描述文件;
对所述主工程的编译结果解压到第一解压目录,从所述第一解压目录中查找预设格式的文件,对所述预设格式的文件解压到第二解压目录,从所述第二解压目录得到第二组件描述文件;
根据所述第一组件描述文件和所述第二组件描述文件,生成主组件描述文件,所述第一组件描述文件、所述第二组件描述文件、所述主组件描述文件为基于指定数据格式的组件描述文件。
7.根据权利要求6所述的方法,其特征在于,还包括预先生成主组件描述文件模板,所述主组件描述文件模板和所述指定数据格式的组件描述文件均包括多个类型的节点;
所述根据所述第一组件描述文件和所述第二组件描述文件,生成主组件描述文件,包括:
从所述第一组件描述文件和所述第二组件描述文件的节点中确定符合预设条件的所述指定数据格式的对象,将确定的所述指定数据格式的对象保存至所述主组件描述文件模板中的对象节点中,所述对象节点为与所述第一组件描述文件或所述第二组件描述文件的节点类型相同的节点;以及,
将所述第二组件描述文件中指定类型节点的内容保存至所述主组件描述文件模板所述指定类型的节点中;
由保存至所述指定数据格式的对象和所述指定类型节点的内容的所述主组件描述文件模板生成所述主组件描述文件。
8.根据权利要求6所述的方法,其特征在于,在所述动态特性模块的编译结果包括卡片快照的情况下,用来生成所述待签名工程文件的所述工程文件的生成要素还包括卡片快照压缩包;
所述生成主组件描述文件之前,包括:创建第一卡片快照目录,并将各所述动态特性模块的编译结果中的卡片快照保存至所述第一卡片快照目录中;
所述生成主组件描述文件之后,包括:创建第二卡片快照目录,并将所述第一卡片快照目录中的卡片快照保存至所述第二卡片快照目录中,通过所述第二卡片快照目录生成所述卡片快照压缩包;删除所述第一卡片快照目录和所述第二卡片快照目录。
9.一种应用生成装置,其特征在于,包括:
工程创建模块,用于根据应用的主工程的配置,对所述应用的业务组件创建对应的子工程,所述主工程包括所述应用的主模块,所述子工程包括所述应用的动态特性模块;
子工程编译模块,用于按照预设编译模式编译所述子工程,以生成所述子工程的编译结果,所述子工程的编译结果包括所述动态特性模块的编译结果;
编译结果集成模块,用于对所述主工程按照所述预设编译模式进行编译,并通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果,基于所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果进行编译结果集成,以生成所述应用。
10.根据权利要求9所述的装置,其特征在于,还包括编译结果上传模块,用于:
在所述按照预设编译模式编译所述子工程,以生成所述子工程的编译结果之后,将所述动态特性模块的编译结果上传至所述依赖包管理工具;
在所述通过依赖包管理工具获取所述主工程所依赖的子工程中动态特性模块的编译结果之前,对所述主工程配置所依赖的子工程中动态特性模块的编译结果。
11.根据权利要求10所述的装置,其特征在于,所述编译结果集成模块还用于:
通过组件拉取任务,将所述所依赖的子工程中动态特性模块的编译结果拉取到所述主工程的编译结果所在的目录,在所述主工程的编译结果所在的目录进行所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果的集成。
12.根据权利要求11所述的装置,其特征在于,在所述预设编译模式为所述发布编译模式的情况下,所述子工程编译模块还用于:
对所述子工程的编译结果进行解压,得到所述动态特性模块的编译结果。
13.根据权利要求12所述的装置,其特征在于,所述编译结果集成模块还用于:
根据所述目录中所述主工程的编译结果和所述所依赖的子工程中动态特性模块的编译结果,生成主组件描述文件;
将所述主组件描述文件、所述所依赖的子工程中动态特性模块的编译结果作为工程文件的生成要素,用来生成待签名工程文件;
通过签名工具对所述待签名工程文件进行签名,得到所述应用的工程文件,以通过所述应用的工程文件生成所述应用。
14.根据权利要求13所述的装置,其特征在于,所述编译结果集成模块还用于:
对所述动态特性模块的编译结果进行解压,得到第一组件描述文件;
对所述主工程的编译结果解压到第一解压目录,从所述第一解压目录中查找预设格式的文件,对所述预设格式的文件解压到第二解压目录,从所述第二解压目录得到第二组件描述文件;
根据所述第一组件描述文件和所述第二组件描述文件,生成主组件描述文件,所述第一组件描述文件、所述第二组件描述文件、所述主组件描述文件为基于指定数据格式的组件描述文件。
15.根据权利要求14所述的装置,其特征在于,还包括预先生成主组件描述文件模板,所述主组件描述文件模板和所述指定数据格式的组件描述文件均包括多个类型的节点;
所述编译结果集成模块还用于:
从所述第一组件描述文件和所述第二组件描述文件的节点中确定符合预设条件的所述指定数据格式的对象,将确定的所述指定数据格式的对象保存至所述主组件描述文件模板中的对象节点中,所述对象节点为与所述第一组件描述文件或所述第二组件描述文件的节点类型相同的节点;以及,
将所述第二组件描述文件中指定类型节点的内容保存至所述主组件描述文件模板所述指定类型的节点中;
由保存至所述JSON对象和所述指定类型节点的内容的所述主组件描述文件模板生成所述主组件描述文件。
16.根据权利要求15所述的装置,其特征在于,在所述动态特性模块的编译结果包括卡片快照的情况下,用来生成所述待签名工程文件的所述工程文件的生成要素还包括卡片快照压缩包;
所述编译结果集成模块还用于:
在所述生成主组件描述文件之前,创建第一卡片快照目录,并将各所述动态特性模块的编译结果中的卡片快照保存至所述第一卡片快照目录中;
在所述生成主组件描述文件之后,创建第二卡片快照目录,并将所述第一卡片快照目录中的卡片快照保存至所述第二卡片快照目录中,通过所述第二卡片快照目录生成所述卡片快照压缩包;删除所述第一卡片快照目录和所述第二卡片快照目录。
17.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
18.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210479742.1A CN115617384A (zh) | 2022-05-05 | 2022-05-05 | 一种应用生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210479742.1A CN115617384A (zh) | 2022-05-05 | 2022-05-05 | 一种应用生成方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617384A true CN115617384A (zh) | 2023-01-17 |
Family
ID=84856373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210479742.1A Pending CN115617384A (zh) | 2022-05-05 | 2022-05-05 | 一种应用生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617384A (zh) |
-
2022
- 2022-05-05 CN CN202210479742.1A patent/CN115617384A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109274731B (zh) | 基于多租户技术的web服务的部署、调用方法和装置 | |
CN110895471A (zh) | 安装包生成方法、装置、介质及电子设备 | |
CN111460129A (zh) | 标识生成的方法、装置、电子设备和存储介质 | |
CN110753020A (zh) | 网络请求处理方法和装置 | |
CN112612467A (zh) | 一种处理基于qiankun的微前端架构的方法和装置 | |
CN113407194A (zh) | 一种部署软件的方法和装置 | |
CN111381899A (zh) | 用于开发目标系统的方法和装置 | |
CN107678755B (zh) | 安装包打包的方法、装置、电子设备和计算机可读介质 | |
CN112559024A (zh) | 一种生成交易码变更列表的方法和装置 | |
CN113760264A (zh) | 多应用之间组件复用的方法和装置 | |
CN113536748A (zh) | 一种生成图表数据的方法和装置 | |
CN112596854A (zh) | 一种持续集成流水线运行的方法和装置 | |
CN110764769A (zh) | 处理用户请求的方法和装置 | |
CN111984615A (zh) | 一种共享文件的方法、装置及系统 | |
CN111382953A (zh) | 一种动态流程生成方法和装置 | |
CN116069725A (zh) | 文件迁移方法、装置、设备、介质和程序产品 | |
CN115617384A (zh) | 一种应用生成方法和装置 | |
CN113760240B (zh) | 一种生成数据模型的方法和装置 | |
CN114860213A (zh) | 一种应用程序包生成方法、装置、设备及介质 | |
CN114281778A (zh) | 数据共享方法和装置 | |
CN112783903B (zh) | 生成更新日志的方法和装置 | |
CN111984616A (zh) | 一种更新共享文件的方法、装置和系统 | |
CN113485763A (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 | |
CN113535221A (zh) | 应用版本管理的方法和装置 | |
CN113760292A (zh) | 开发应用程序的方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |