CN114281341A - 数据结构定义文件的编译方法、装置、计算机设备及介质 - Google Patents

数据结构定义文件的编译方法、装置、计算机设备及介质 Download PDF

Info

Publication number
CN114281341A
CN114281341A CN202111623480.3A CN202111623480A CN114281341A CN 114281341 A CN114281341 A CN 114281341A CN 202111623480 A CN202111623480 A CN 202111623480A CN 114281341 A CN114281341 A CN 114281341A
Authority
CN
China
Prior art keywords
file
target
data structure
structure definition
programming language
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
Application number
CN202111623480.3A
Other languages
English (en)
Inventor
李晓东
李炜豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Dajiaying Information Technology Co Ltd
Original Assignee
Suzhou Dajiaying Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Dajiaying Information Technology Co Ltd filed Critical Suzhou Dajiaying Information Technology Co Ltd
Priority to CN202111623480.3A priority Critical patent/CN114281341A/zh
Publication of CN114281341A publication Critical patent/CN114281341A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种数据结构定义文件的编译方法、装置、计算机设备及介质,该方法包括:获取目标工程中的目标存储目录,目标存储目录下包括数据结构定义文件,各数据结构定义文件对应于同一编程语言;根据目标存储目录下搜索到的编程语言描述文件,确定与各数据结构定义文件匹配的目标编程语言类型;对目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;根据跨文件依赖描述信息,以及目标编程语言类型,对每个对应的数据结构定义文件进行编译,得到编译结果。该方法避免了人为构造编译命令时,带来的时间和人力成本,也避免了在构造编译命令时容易引入的主观错误,保证了编译指令的执行成功率。

Description

数据结构定义文件的编译方法、装置、计算机设备及介质
技术领域
本发明实施例涉及计算机通信技术,尤其涉及一种数据结构定义文件的编译方法、装置、计算机设备及介质。
背景技术
在计算机通信中,在进行网络通信和通用数据交换等应用场景中,经常采用序列化结构数据的方法实现数据传输。例如,A端发送目标数据至B端时,可以在A端对结构化的目标数据进行发送前,通过数据序列化方法生成序列化数据,并将序列化数据发送至B端,B端在接收到序列化数据时,进行反序列化得到A端发送的结构化的目标数据。
现有技术为了实现序列化结构数据的传输,需要人为根据实际的需求定义对应的结构体后,在程序编译软件上生成与所需编程语言对应的编译命令,通过执行编译命令对该结构体进行编译,可以得到匹配的接口。进而,可以最终通过接口调用的方式,实现数据在传输过程中的序列化或者反序列化。
然而,人为构造编译命令的方式,需要人为确定各结构体文件之间的依赖关系、关联参数以及指定的编程语言类型等,致使整个编译过程的自动化程度低、人力成本大,并且会在一定程度上容易引入主观错误,进而使得编译命令的执行成功率较低。
发明内容
本发明实施例提供一种数据结构定义文件的编译方法、装置、计算机设备及介质,以在最大程度保证编译命令生成效率的基础上,提高编译命令的执行成功率。
第一方面,本发明实施例提供了一种数据结构定义文件的编译方法,该方法,包括:
获取目标工程中的目标存储目录,其中,目标存储目录下包括至少一个数据结构定义文件,各数据结构定义文件对应于同一编程语言;
根据所述目标存储目录下搜索到的编程语言描述文件,确定与各所述数据结构定义文件匹配的目标编程语言类型;
对所述目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;
根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及所述目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果。
第二方面,本发明实施例还提供了一种数据结构定义文件的编译装置,该装置,包括:
目标存储目录获取模块,用于获取目标工程中的目标存储目录,其中,目标存储目录下包括至少一个数据结构定义文件,各数据结构定义文件对应于同一编程语言;
目标编程语言类型确定模块,用于根据所述目标存储目录下搜索到的编程语言描述文件,确定与各所述数据结构定义文件匹配的目标编程语言类型;
跨文件依赖描述信息确定模块,用于对所述目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;
编译结果获取模块,用于根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及所述目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果。
第三方面,本发明实施例还提供了一种计算机设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的一种数据结构定义文件的编译方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的一种数据结构定义文件的编译方法。
本发明实施例通过获取目标工程中的目标存储目录,目标存储目录下包括数据结构定义文件,各数据结构定义文件对应于同一编程语言;根据目标存储目录下搜索到的编程语言描述文件,确定与各数据结构定义文件匹配的目标编程语言类型;对目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;根据跨文件依赖描述信息,以及目标编程语言类型,对每个对应的数据结构定义文件进行编译,得到编译结果,实现了无需人为声明编程语言类型,也无需人为确定跨文件依赖描述信息,即可自动生成数据结构定义文件的编译命令的技术效果,彻底避免了人为构造数据结构定义文件的编译命令时,所带来的时间和人力成本的损耗,同时,也彻底避免了在构造编译命令时容易引入的主观错误,最大程度的保证了编译指令的执行成功率。
附图说明
图1为本发明实施例一提供的一种数据结构定义文件的编译方法的流程图;
图2是本发明实施例二提供的一种数据结构定义文件的编译方法的流程图;
图3是本发明实施例三提供的一种数据结构定义文件的编译装置的结构示意图;
图4为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种数据结构定义文件的编译方法的流程图,本实施例可适用于自动生成与数据结构定义文件匹配的编译结果的情况,该方法可以由数据结构定义文件的编译装置来执行,具体包括如下步骤:
步骤110、获取目标工程中的目标存储目录。
其中,目标存储目录下包括至少一个数据结构定义文件,各数据结构定义文件对应于同一编程语言。
在本发明实施例中,目标工程可以理解为集成有一个或者多个项目的聚合工程,不同的项目用于实现不同的独立功能,例如,支付功能、鉴权功能或者身份验证功能等。一般来说,当开发人员希望编写一个集成多个功能的应用程序时,可以针对该应用程序建立一个目标工程,进而,通过在该目标工程中建立多个项目的方式,实现在该应用程序中集成的不同微服务功能。
也即,对于一个目标工程所在的工程文件夹而言,可以包含与一个或者多个微服务对应的项目文件夹。项目文件夹中一般包括有用于实现微服务功能的源码文件,数据结构定义文件以及各种图片、语音或者视频文件等。微服务可以理解为目标工程的某一项功能实现。一般来说,一个微服务对应聚合工程中的一个项目文件夹,该项目文件夹中包括一个或者多个数据结构定义文件,上述一个或者多个数据结构定义文件用于在同一编程语言下生成匹配的编译结果,以实现其他用户或终端对该微服务的调用。相应的,在本实施例中,目标存储目录可以是指一个微服务项目文件夹在目标工程中的存储目录。
其中,数据结构定义文件可以理解为将结构数据或对象转换成能够被存储和传输(如网络传输)的格式时所定义的文件。数据结构定义文件可以理解为对网络中传输的消息的数据格式的定义,也即,消息在进行序列化之前或者反序列化之后的数据形式。其中,该数据结构定义文件可以为“.proto”文件、“.json”文件或者“.xml”文件等。
同一目标工程中的各数据结构定义文件可以对应相同或者不同的编程语言。通常,同一微服务一般采用同一编程语言实现。在本发明实施例中,由于目标存储目录与一个微服务对应,则该目标存储目录下包括的各数据结构定义文件可以对应相同的编程语言。换句话说,该目标存储目录下的各数据结构定义文件需要在同一编程语言下生成匹配的编译结果。
相应的,在根据数据结构定义文件生成编译结果时,需要在对应的编程语言下进行实现。具体的,编程语言可以是go语言、java语言、C语言、C++语言或者Python语言等。
示例性的,通过go语言开发目标工程时,开发过程中可以先用go语言构建工程,实现该工程下的一个或者多个微服务;如果微服务想要被其他用户或终端调用时,可以创建数据结构定义文件,在其中定义被调用时的请求格式以及响应格式等;进而,微服务在被远程过程调用(Remote Procedure Call,RPC)时,可以根据数据结构定义文件生成编译结果,如可以生成“*.pb.go”文件。其中,“*.pb.go”文件采用的是go语言进行编译得到的结果。在生成“*.pb.go”文件后,可以将go语言工程、数据结构定义文件以及*.pb.go”文件打包上传至运维人员处,由运维人员将其编译打包,形成可执行文件(典型的,形如*.exe形式的文件),并将相应的编译打包结果上传至服务器端进行存储,以便于其他用户或者终端针对编译打包结果中的可执行文件,对一个或者多个微服务远程过程调用。
在本发明实施例中,目标存储目录可以理解为目标工程所在的存储目录下的某一级存储子目录。在该目标存储目录下,存储有一个或者多个用于针对同一编程语言生成编译结果的数据结构定义文件。
在一个具体例子中,如果目标工程所在的工程文件夹存储于D盘根目录下,该工程文件夹中包括三个子文件夹,每个子文件夹中用于存储该目标工程中的一个微服务所需的全部文件,每个子文件夹中包括一个或者多个数据结构定义文件。进而,可以将上述每个子文件夹的存储路径分别确定为一个目标存储目录。
步骤120、根据目标存储目录下搜索到的编程语言描述文件,确定与各数据结构定义文件匹配的目标编程语言类型。
其中,编程语言描述文件是指用于表征目标工程,或者目标工程的某一个微服务使用何种类型的编程语言开发得到的文件。一般来说,开发人员使用设定类型的编程语言生成目标工程或者生成目标工程中的某一个微服务时,一定会在该目标工程或者该微服务下的一个或者多个文件夹中引入(或者自动生成)与该编程语言类型匹配的文件。同样的,当针对该目标工程或者该微服务中的数据结构定义文件生成编译命令时,同样需要将上述编程语言类型作为一项编译参数,加入至该编译命令中。
发明人通过分析工程目录发现,通过计算机方式分析目标工程或者目标工程中的一个微服务中包括的各项文件,可以自动搜索得到编程语言描述文件,进而可以通过分析该编程语言描述文件(例如,具体文件内容或者文件后缀名)的方式,自动确定出对应的编程语言类型,进而可以通过自动确定的方式,获取编译命令中的一项重要的编译参数。
可以理解的是,本发明实施例将工程中出现的,用于客观体现目标工程或者微服务使用何种类型的编程语言进行开发的文件,转用为用于指定对数据结构定义文件进行编译时采用哪一编程语言类型的文件。
具体的,在使用编译命令对数据结构定义文件A编译时,可以设置编译命令中包括的编译参数,进而,通过对编译参数进行设置指定编程语言类型B后,可以通过执行该编译命令,针对该数据结构定义文件A生成基于编程语言类型B的编译结果。
不同的编程语言类型在编译命令中使用不同的编译参数,在执行编译命令时,对应不同的编译方式,进而在完成编译后生成的编译结果也不同。
如前所述,在用户需要将一个目标存储目录下的每个数据结构定义文件分别进行编译,得到匹配的编译结果时,需要首先人为确定与每个数据结构定义文件分别对应的编程语言类型,进而针对每个数据结构定义文件分别生成匹配的编译命令,并在每个编译命令中,根据人为确定的编程语言类型,设置编译命令中与编程语言类型对应的编译参数。
基于此,发明人创造性的提出了,自动确定与数据结构定义文件分别对应的编程语言类型,并根据该编程语言类型,自动确定匹配的编译参数;基于该编译参数,自动生成编译命令的技术方案,以最大程度的减少人工操作。
在本发明实施例中,目标存储目录下会包括有一个编程语言描述文件,或者,与同一编程语言类型对应的多个编程语言描述文件。上述编程语言描述文件用于表征目标存储目录对应的微服务使用何种类型的编程语言开发得到。相应的,可以搜索目标存储目录下的编程语言描述文件,根据该编程语言描述文件确定目标编程语言类型。目标编程语言类型可以作为该目标存储目录下全部数据结构定义文件指定的编程语言类型,从而可以采用该目标编程语言类型设置编译命令中的编译参数,实现数据结构定义文件在该目标编程语言类型下的编译,进而可以达到自动确定编译命令中包括的编程语言类型的效果,既避免了人为构造编译命令所需的巨大工作量,又避免了潜在的主观错误的引入。
如前所述,目标存储目录中的每个数据结构定义文件均对应同一编程语言,也即,在该目标存储目录下检测到的编程语言描述文件对应的目标编程语言类型,即为目标存储目录中全部数据结构定义文件对应的编程语言类型。进而,可以结合该目标编程语言类型,批量生成与目标存储目录中的每个数据结构定义文件分别对应的编译命令,彻底避免了人为构造数据结构定义文件的编译命令时,所带来的时间和人力成本的损耗,同时,也彻底避免了在构造编译命令时容易引入的主观错误,最大程度的保证了编译指令的执行成功率。
步骤130、对目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息。
其中,跨文件依赖描述信息可以理解为当前数据结构定义文件依赖一个或多个其他数据结构定义文件时,在当前数据结构定义文件中标明该依赖关系的信息。例如,数据结构定义文件A依赖数据结构定义文件B时,在数据结构定义文件A中可以通过跨文件依赖描述信息标明数据结构定义文件A依赖数据结构定义文件B。
示例性的,数据结构定义文件A可以通过跨文件依赖描述信息(例如,import“git.woda.ink/jifanfei/common_proto/ComMsg/数据结构定义文件B”)标明数据结构定义文件A依赖数据结构定义文件B。也即,在进行数据结构定义文件A的文件编译时,需要全盘引入数据结构定义文件B中的全部内容。
其中,数据结构定义文件A依赖数据结构定义文件B可以理解为数据结构定义文件B定义的请求格式以及响应格式可以在数据结构定义文件A中进行应用(或者调用)。
如前所述,现有技术中,在用户将一个目标存储目录下的每个数据结构定义文件分别进行编译,得到匹配的编译结果之前,需要首先人为确定每个数据结构定义文件的跨文件依赖描述信息,例如,通过人为阅读数据结构定义文件的文件内容,识别出与每个数据结构定义文件分别对应的跨文件依赖描述信息,也即,所引入的其他数据结构定义文件。进而,可以针对每个数据结构定义文件分别生成匹配的编译命令。相应的,在生成编译命令时,需要将上述人为获取到的跨文件依赖描述信息作为一项编译参数加入至该编译命令中。
基于此,发明人创造性的提出了,自动确定与数据结构定义文件分别对应的跨文件依赖描述信息,并根据该跨文件依赖描述信息,自动确定匹配的编译参数,并基于该编译参数,自动生成编译命令的技术方案,以最大程度的减少人工操作。而且,由于编译命令对于各部分参数及参数类型有严格的要求,如果人为确定的一个或多个参数(或参数类型)设置错误,则编译命令无法执行。因此,本发明提出的自动生成编译命令的技术方案,也避免了人工操作可能带来的编译命令无法执行的错误。
步骤140、根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果。
其中,编译可以理解为对指定的数据结构定义文件采用编译工具在指定参数(例如,目标编程语言类型和跨文件依赖描述信息)下生成可用于远程过程调用的编译结果。对于不同的目标编程语言类型,生成的编译结果类型可以不同。对于不同的跨文件依赖描述信息,生成的编译结果的具体内容可以不同。跨文件依赖描述信息可以为空,表示当前数据结构定义文件不依赖任何其他的数据结构定义文件。
如前所述,针对一个数据结构定义文件,可以构建一个编译命令,在该编译命令中,包括与数据结构定义文件对应的目标编程语言类型以及跨文件依赖描述信息分别对应的定制化编译参数。进而,在执行在编译命令后,可以相应形成与该数据结构定义文件对应的编译结果。
在本实施例中,通过计算机技术自动获取一个目标存储目录下包括的各数据结构定义文件对应的目标编程语言类型以及跨文件依赖描述信息,可以自动生成与每个数据结构定义文件分别对应的编译命令,以实现全自动的编译过程。
示例性的,数据结构定义文件对应的目标编程语言类型为go语言,其生成的编译结果可以为“*.pb.go”文件;数据结构定义文件对应的目标编程语言类型为C++语言,其生成的编译结果可以为一对“*.pb.h”和“*.pb.cc”文件。
本实施例的技术方案,通过获取目标工程中的目标存储目录,目标存储目录下包括数据结构定义文件,各数据结构定义文件对应于同一编程语言;根据目标存储目录下搜索到的编程语言描述文件,确定与各数据结构定义文件匹配的目标编程语言类型;对目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;根据跨文件依赖描述信息,以及目标编程语言类型,对每个对应的数据结构定义文件进行编译,得到编译结果,实现了无需人为声明编程语言类型,也无需人为确定跨文件依赖描述信息,即可自动生成数据结构定义文件的编译命令的技术效果,彻底避免了人为构造数据结构定义文件的编译命令时,所带来的时间和人力成本的损耗,同时,也彻底避免了在构造编译命令时容易引入的主观错误,最大程度的保证了编译指令的执行成功率。
实施例二
图2是本发明实施例二提供的一种数据结构定义文件的编译方法的流程图。本实施例是对上述技术方案的进一步细化,本实施例中的技术方案可以与上述一个或者多个实施例中的各个可选方案结合。
具体的,在本发明实施例的一个可选实施方式中,根据目标存储目录下搜索到的编程语言描述文件,确定与各数据结构定义文件匹配的目标编程语言类型,包括:遍历目标存储目录中包括的各文件;将遍历得到的各文件的文件名与编程语言描述文件名集合中的各编程语言描述文件名进行匹配,获取匹配到的目标编程语言描述文件名;获取与目标编程语言描述文件名匹配的目标编程语言类型。
在本发明实施例的一个可选实施方式中,对目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息,包括:在目标存储目录下,获取目标数据结构定义文件;对目标数据结构定义文件的文件内容进行逐行解析,判断目标数据结构定义文件中是否存在包含目标关键字段的目标内容行;若是,则根据各目标内容行,确定与目标数据结构定义文件对应的跨文件依赖描述信息。
如图2所示,该方法包括:
步骤210、获取目标工程中的目标存储目录。
其中,目标存储目录下包括至少一个数据结构定义文件,各数据结构定义文件对应于同一编程语言。对数据结构定义文件进行编译时,需要先明确数据结构定义文件所在的具体目录,在本发明实施例中可以通过在目标工程中的目标存储目录下遍历查找各数据结构定义文件的方式,首先定位需要进行编译处理的数据结构定义文件在所述目标存储目录下的具体存储位置。
具体的,目标存储目录可以是目标工程中的第一层级子目录。数据结构定义文件可以直接存储于目标存储目录的第一层级子目录下,也可以存储于第一层级子目录之下的其他的子目录中,本实施例对此并不进行限制。
在本发明实施例的一个可选实施方式中,数据结构定义文件包括proto文件。
在proto文件中,一般通过message、import以及内嵌message等语法来实现数据结构化的定义和封装,以规定在网络通信和通用数据交换时,所使用的序列化结构数据格式,具有与语言无关、与平台无关、高效、扩展性及兼容性好等优点。
步骤220、遍历目标存储目录中包括的各文件。
通常,在与一个微服务对应的目标存储目录中,一般选择在第一层级子目录中存储体现编程语言类型的编程语言描述文件,因此,在本发明实施例中可以直接在目标存储目录中即第一层级子目录中遍历文件,获取该编程语言描述文件,可以提高目标编程语言类型的确定速度。
具体的,可以通过“cmd:=’Is./*|grep-E”对目标存储目录进行文件扫描。其中,ls是unix和linux操作系统下的命令,用于显示目录内容(即该目录下有哪些文件或者文件夹等)。当在其他操作系统的环境下进行处理时,Is命令需进行对应的修改,如dir是dos/windows操作系统的命令,作用与Is类似,当在dos/windows操作系统的环境下进行处理时,可以将Is替换为dir。通过“ls./*”可以得到文件名或子目录名组成的字符串(可以包含多个换行符)。“grep-E”可以用来扩展选项为正则表达式。如果使用了grep命令的选项-E,则应该使用“|”来分割多个判断条件,以此实现“或”操作。
步骤230、将遍历得到的各文件的文件名与编程语言描述文件名集合中的各编程语言描述文件名进行匹配,获取匹配到的目标编程语言描述文件名。
其中,编程语言描述文件名集合可以是根据数据结构定义文件所支持的编程语言构成的集合。具体的,数据结构定义文件为proto文件时,可以支持Go、Java、C++、Python、swift等多种语言。编程语言描述文件名集合可以是由“main.go”、“go.sum”、“go.mod”、“main.py”、“*init*.py”、“*.swift”、“*.Delegate.m”、“*java”以及“*.cpp”等编程语言描述文件名构成的集合。“*”可以是模糊符号,如“*init*.py”表示文件名的中间有“init”的“py”文件;又如“*.java”表示任意文件名的“java”文件。
具体的,在“ls./*”的结果基础上,判断目录内容里是否存在“main.go”、“go.sum”、“go.mod”、“main.py”、“*init*.py”、“*.swift”、“*.Delegate.m”、“*java”或者“*.cpp”中的至少一个文件。如果是,则筛出匹配的目标编程语言描述文件名,作为符合grep筛选条件的文件名。
步骤240、获取与目标编程语言描述文件名匹配的目标编程语言类型。
其中,目标编程语言描述文件名与目标编程语言类型之间存在对应关系。例如,目标编程语言描述文件名为“main.go”、“go.sum”或者“go.mod”时,对应的目标编程语言类型是go语言。又如,目标编程语言描述文件名为“*java”时,对应的目标编程语言类型是java语言。再如,目标编程语言描述文件名为“*.swift”时,对应的目标编程语言类型是swift语言。还如,目标编程语言描述文件名为“*.Delegate.m”时,对应的目标编程语言类型是Object-C语言。又比如,目标编程语言描述文件名为“main.py”或者“*init*.py”时,对应的目标编程语言类型是Python语言。再比如,目标编程语言描述文件名为“*.cpp”时,对应的目标编程语言类型是C++语言。
步骤250、在目标存储目录下,获取目标数据结构定义文件。
如前所述,目标数据结构定义文件可以存储于目标存储目录的第一层级子目录下,也可以存储于第一层级子目录之下的其他的子目录中。例如,对于go语言编写的微服务项目(对应目标存储目录),具体可以是从该微服务项目所在文件夹中的第一层级子目录开始递归查找获取目标数据结构定义文件,可以保证获取的目标数据结构定义文件的全面性,避免存在数据结构定义文件漏编译的问题。由目标存储目录的第一层级子目录至查找获取到目标数据结构定义文件的目录,所形成的存储路径,可以作为目标数据结构定义文件对应的存储路径。在一个目标存储目录中,可以存在一个或者多个目标数据结构定义文件。
步骤260、对目标数据结构定义文件的文件内容进行逐行解析,判断目标数据结构定义文件中是否存在包含目标关键字段的目标内容行。
其中,目标关键字段可以是目标数据结构定义文件依赖了其他数据结构定义文件时,所声明的字段。目标内容可以具体表明目标数据结构定义文件所依赖的其他数据结构定义文件的具体内容。一个目标数据结构定义文件可以依赖一个或者多个其他数据结构定义文件。目标数据结构定义文件每依赖一个其他数据结构定义文件时,可以通过包含目标关键字段的目标内容行生成一段跨文件依赖描述信息表明该依赖关系。通过目标关键字段进行跨文件依赖描述信息的确定,可以提高跨文件依赖描述信息确定的准确率以及效率。
例如,目标数据结构定义文件A(A.proto)中存在目标内容行,记载的内容为:“import“git.woda.ink/jifanfei/common_proto/ComMsg/B.proto””标明A.proto依赖数据结构定义文件B(B.proto);其中,“import”可以是目标关键字段。
步骤270、若是,则根据各目标内容行,确定与目标数据结构定义文件对应的跨文件依赖描述信息。
其中,目标内容行中记载的全部内容、部分内容或者根据记载内容补充的内容可以作为与目标数据结构定义文件对应的跨文件依赖描述信息。
在本发明实施例的一个可选实施方式中,根据各目标内容行,确定与目标数据结构定义文件对应的跨文件依赖描述信息,包括:滤除每个目标内容行中包含的目标关键字段,得到与每个目标内容行对应的依赖文件存储路径;将各依赖文件存储路径,确定为与目标数据结构定义文件对应的跨文件依赖描述信息。
其中,跨文件依赖描述信息可以是,具体记载目标数据结构定义文件所依赖的数据结构定义文件,以及与所依赖的数据结构定义文件的存储路径相关的内容。
例如,A.proto中包含目标关键字段“import”的目标内容行中记载内容:“import“git.woda.ink/jifanfei/common_proto/ComMsg/B.proto””,表明A.proto依赖了B.proto。其中,目标关键字段可以是“import”,滤除目标关键字段后剩余的内容“git.woda.ink/jifanfei/common_proto/ComMsg/B.proto”为B.proto的依赖文件存储路径。“git.woda.ink/jifanfei/common_proto/ComMsg/B.proto”可以作为A.proto对应的跨文件依赖描述信息。
在一些具体实施方式中,如果目标数据结构定义文件与所依赖的数据结构定义文件在相同目录下,目标内容行中的内容可以存在对应的至少一种简略形式,如A.proto的存储路径为“git.woda.ink/jifanfei/common_proto/ComMsg/A.proto”;B.proto的存储路径为“git.woda.ink/jifanfei/common_proto/ComMsg/B.proto”,A.proto中包含目标关键字段“import”的目标内容行中可以记载内容:“import“B.proto””,表明A.proto与B.proto为在相同的目录下的两个同层级文件。当A.proto依赖B.proto时,可以根据目标内容行中记载的内容以及A.proto的存储路径,确定B.proto对应的简略形式的存储路径为“.”,其中,“.”表示与A.proto的存储路径相同;也可以确定B.proto的完整存储路径为“git.woda.ink/jifanfei/common_proto/ComMsg/B.proto”。将B.proto的存储路径作为跨文件依赖描述信息时,可以将B.proto对应的简略形式的存储路径或者完整存储路径作为跨文件依赖描述信息。
在本发明实施例的又一个可选实施方式中,根据各目标内容行,确定与目标数据结构定义文件对应的跨文件依赖描述信息,包括:滤除每个目标内容行中包含的目标关键字段,得到每个目标内容行对应的依赖文件存储路径;获取与各依赖文件存储路径分别对应的上一级存储目录;将各上一级存储目录,确定为与目标数据结构定义文件对应的跨文件依赖描述信息。
例如,A.proto中包含目标关键字段“import”的目标内容行中记载内容:“import“git.woda.ink/jifanfei/common_proto/ComMsg/B.proto””,表明A.proto依赖了B.proto。其中,目标关键字段可以是“import”,滤除目标关键字段后剩余的内容“git.woda.ink/jifanfei/common_proto/ComMsg/B.proto”为B.proto的依赖文件存储路径。依赖文件存储路径的上一级存储目录可以是“git.woda.ink/jifanfei/common_proto/ComMsg/”,其可以作为A.proto对应的跨文件依赖描述信息。
需要说明的是,跨文件依赖描述信息可以为空、一个或者多个。跨文件依赖描述信息为空时,表示目标数据结构定义文件不存在依赖的数据结构定义文件。跨文件依赖描述信息可以是目标数据结构定义文件所依赖文件完整的依赖文件存储路径;或者可以是简略的依赖文件存储路径。例如,采用依赖文件存储路径分别对应的上一级存储目录表示跨文件依赖描述信息。在目标数据结构定义文件依赖多个其他数据结构定义文件时,该方式可以起到简化代码,提高代码执行效率,且便于后续阅读及查找问题的效果。
步骤280、根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果。
在本发明实施例的一个可选实施方式中,数据结构定义文件包括:proto文件;根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果,包括:根据与每个proto文件分别对应的跨文件依赖描述信息,以及目标编程语言类型,构建与每个proto文件分别对应的protoc编译命令;通过执行各protoc编译命令,得到与每个proto文件分别对应的编译结果。
其中,数据结构定义文件为proto文件时,编译采用的编译工具可以是protoc。protoc为ProtocolBuffer提供的命令行编译工具。在protoc中的命令格式中存在多个可选项。其中,可选项可以包括跨文件依赖描述信息以及目标编程语言类型等,可以将上述信息填入,生成protoc编译命令,采用protoc编译工具进行编译得到编译结果。
在上述实施方式的基础上,可选的,根据与每个proto文件分别对应的跨文件依赖描述信息,以及目标编程语言类型,构建与每个proto文件分别对应的protoc编译命令,包括:获取与protoc编译命令匹配的标准化填充模板,标准化填充模板中包括多个待填充位置;获取与目标编程语言类型对应的目标字符串;将与每个proto文件分别对应的跨文件依赖描述信息、文件名、文件存储路径,以及目标字符串,对应填充于标准化填充模板中匹配的待填充位置,得到与每个proto文件分别对应的protoc编译命令。
其中,采用protoc进行编译时,需要生成protoc编译命令。protoc编译命令可以对应有标准化填充模板,在标准化填充模板中的待填充位置可以填入可选项信息。具体的,可以将目标数据结构定义文件相关的信息、跨文件依赖描述信息、以及目标编程语言类型等填入标准化填充模板中的待填充位置,生成protoc编译命令。通过标准化填充模板生成protoc编译命令的方式可以规范化protoc编译命令的生成,避免人为构造protoc编译命令时所需引入的人为逻辑判断,在缩减编译命令生成时间的基础上,也可以有效避免protoc编译命令生成时的信息遗漏,避免主观错误的发生。
示例性的,protoc编译命令对应的标准化填充模板可以是:“protoc--proto_path=IMPORT_PATH--Programing_Language=DST_DIR path/to/file.proto”。
其中,“proto_path”等同于-I选项,主要用于指定待编译的数据结构定义文件所在的目录,该选项可以被同时指定多个。“IMPORT_PATH”对应一个待填充位置,用于填充跨文件依赖描述信息。“Programing_Language”对应一个待填充位置,用于填充与目标编程语言类型对应的目标字符串,例如,与C++编程语言对应的目标字符串可以为“cpp_out”,与Java编程语言对应的目标字符串可以为“java_out”,或者,与Python编程语言对应的目标字符串可以为“python_out”等。“Programing_Language”之后的目录(即DST_DIR),对应一个待填充位置,用于填充编译生成的编译结果所存放的目录。例如,生成的与C++编程语言对应的编译结果可以存放在“./GenFileCpp”,生成的与Python编程语言对应的编译结果可以存放在“./GenFilePython”等。“path/to/file.proto”对应一个待填充位置,用于填充该待编译的数据结构定义文件的文件名。
又一示例性的,protoc编译命令对应的标准化填充模板可以是“protoc-I$PROTO_DIR-I$LINK_DIR--Programing_Language=grpc:$PBGO_OUTPUT_DIR*.proto”。
其中,“$PROTO_DIR”对应一个待填充位置,用于填充目标数据结构定义文件的存储路径;“*.proto”对应一个待填充位置,用于填充目标数据结构定义文件的文件名;“$LINK_DIR”对应一个待填充位置,用于填充跨文件依赖描述信息,也即,用于填充目标数据结构定义文件所依赖(import)的其他数据结构定义文件的存储路径。“Programing_Language”对应一个待填充位置,用于填充与目标编程语言类型对应的目标字符串,例如,“--go_out=plugins=”“grpc”表示基于grpc框架;“$PBGO_OUTPUT_DIR”对应一个待填充位置,用于填充编译结果所存放的路径。
由此可知,对数据结构定义文件进行编译时,需要进行数据结构定义文件的确定(参考步骤250)、数据结构定义文件的存储路径确定(参考步骤250)、编译结果的存储路径确定(可以根据实际情况进行指定)以及编译结果采用的目标编程语言类型的确定(参考步骤210-步骤240)。此外,还需要确定数据结构定义文件所依赖的其他数据结构定义文件的跨文件依赖描述信息的确定(参考步骤260-步骤270)。根据上述确定的信息可以生成protoc编译命令进行目标数据结构定义文件的编译。
在上述实施方式的基础上,可选的,在编译之后,可以返回编译结果。其中,编译结果可以是编译成功时对应的返回文件,例如go语言时,可以返回“pb.go”文件、以及编译成功对应的数值或者字符串。编译结果还可以是编译失败时对应的表述失败的数值或者字符串,可以同步返回错误类型以及具体提示内容,便于开发人员进行问题确认。
本实施例的技术方案,通过获取目标工程中的目标存储目录,目标存储目录下包括数据结构定义文件,各数据结构定义文件对应于同一编程语言;遍历目标存储目录中包括的各文件;将遍历得到的各文件的文件名与编程语言描述文件名集合中的各编程语言描述文件名进行匹配,获取匹配到的目标编程语言描述文件名;获取与目标编程语言描述文件名匹配的目标编程语言类型;在目标存储目录下,获取目标数据结构定义文件;对目标数据结构定义文件的文件内容进行逐行解析,判断目标数据结构定义文件中是否存在包含目标关键字段的目标内容行;若是,则根据各目标内容行,确定与目标数据结构定义文件对应的跨文件依赖描述信息;根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果,实现了无需人为声明编程语言类型,也无需人为确定跨文件依赖描述信息,即可自动生成数据结构定义文件的编译命令的技术效果,彻底避免了人为构造数据结构定义文件的编译命令时,所带来的时间和人力成本的损耗,同时,也彻底避免了在构造编译命令时容易引入的主观错误,最大程度的保证了编译指令的执行成功率。
实施例三
图3是本发明实施例三提供的一种数据结构定义文件的编译装置的结构示意图。结合图3,该装置包括:目标存储目录获取模块310,目标编程语言类型确定模块320,跨文件依赖描述信息确定模块330和编译结果获取模块340。其中:
目标存储目录获取模块310,用于获取目标工程中的目标存储目录,其中,目标存储目录下包括至少一个数据结构定义文件,各数据结构定义文件对应于同一编程语言;
目标编程语言类型确定模块320,用于根据目标存储目录下搜索到的编程语言描述文件,确定与各数据结构定义文件匹配的目标编程语言类型;
跨文件依赖描述信息确定模块330,用于对目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;
编译结果获取模块340,用于根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果。
本发明实施例通过获取目标工程中的目标存储目录,目标存储目录下包括数据结构定义文件,各数据结构定义文件对应于同一编程语言;根据目标存储目录下搜索到的编程语言描述文件,确定与各数据结构定义文件匹配的目标编程语言类型;对目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;根据跨文件依赖描述信息,以及目标编程语言类型,对每个对应的数据结构定义文件进行编译,得到编译结果,实现了无需人为声明编程语言类型,也无需人为确定跨文件依赖描述信息,即可自动生成数据结构定义文件的编译命令的技术效果,彻底避免了人为构造数据结构定义文件的编译命令时,所带来的时间和人力成本的损耗,同时,也彻底避免了在构造编译命令时容易引入的主观错误,最大程度的保证了编译指令的执行成功率。
可选的,目标编程语言类型确定模块320,包括:
文件遍历单元,用于遍历目标存储目录中包括的各文件;
目标编程语言描述文件名获取单元,用于将遍历得到的各文件的文件名与编程语言描述文件名集合中的各编程语言描述文件名进行匹配,获取匹配到的目标编程语言描述文件名;
目标编程语言类型获取单元,用于获取与目标编程语言描述文件名匹配的目标编程语言类型。
可选的,跨文件依赖描述信息确定模块330,包括:
目标数据结构定义文件获取单元,用于在目标存储目录下,获取目标数据结构定义文件;
目标内容行查询单元,用于对目标数据结构定义文件的文件内容进行逐行解析,判断目标数据结构定义文件中是否存在包含目标关键字段的目标内容行;
跨文件依赖描述信息确定单元,用于若目标数据结构定义文件中存在包含目标关键字段的目标内容行,则根据各目标内容行,确定与目标数据结构定义文件对应的跨文件依赖描述信息。
可选的,跨文件依赖描述信息确定单元,包括:
第一依赖文件存储路径获取子单元,用于滤除每个目标内容行中包含的目标关键字段,得到与每个目标内容行对应的依赖文件存储路径;
第一跨文件依赖描述信息确定子单元,用于将各依赖文件存储路径,确定为与目标数据结构定义文件对应的跨文件依赖描述信息。
可选的,跨文件依赖描述信息确定单元,包括:
第二依赖文件存储路径获取子单元,用于滤除每个目标内容行中包含的目标关键字段,得到每个目标内容行对应的依赖文件存储路径;
上一级存储目录获取单元,用于获取与各依赖文件存储路径分别对应的上一级存储目录;
第二跨文件依赖描述信息确定子单元,用于将各上一级存储目录,确定为与目标数据结构定义文件对应的跨文件依赖描述信息。
可选的,数据结构定义文件包括:proto文件;
编译结果获取模块340,包括:
protoc编译命令构建单元,用于根据与每个proto文件分别对应的跨文件依赖描述信息,以及目标编程语言类型,构建与每个proto文件分别对应的protoc编译命令;
编译结果获取单元,用于通过执行各protoc编译命令,得到与每个proto文件分别对应的编译结果。
可选的,protoc编译命令构建单元,包括:
标准化填充模板获取子单元,用于获取与protoc编译命令匹配的标准化填充模板,标准化填充模板中包括多个待填充位置;
目标字符串获取子单元,用于获取与目标编程语言类型对应的目标字符串;
protoc编译命令获取子单元,用于将与每个proto文件分别对应的跨文件依赖描述信息、文件名、文件存储路径,以及目标字符串,对应填充于标准化填充模板中匹配的待填充位置,得到与每个proto文件分别对应的protoc编译命令。
本发明实施例所提供的数据结构定义文件的编译装置可执行本发明任意实施例所提供的数据结构定义文件的编译方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种计算机设备的结构示意图,如图4所示,该设备包括处理器410、存储器420、输入装置430和输出装置440;设备/终端/服务器中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;设备/终端/服务器中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据结构定义文件的编译方法对应的程序指令/模块(例如,目标存储目录获取模块310,目标编程语言类型确定模块320,跨文件依赖描述信息确定模块330和编译结果获取模块340)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行设备/终端/服务器的各种功能应用以及数据处理,即实现上述的数据结构定义文件的编译方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据结构定义文件的编译方法,该方法包括:
获取目标工程中的目标存储目录,其中,目标存储目录下包括至少一个数据结构定义文件,各数据结构定义文件对应于同一编程语言;
根据所述目标存储目录下搜索到的编程语言描述文件,确定与各所述数据结构定义文件匹配的目标编程语言类型;
对所述目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;
根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及所述目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据结构定义文件的编译方法中的相关操作.
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据结构定义文件的编译装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种数据结构定义文件的编译方法,其特征在于,包括:
获取目标工程中的目标存储目录,其中,目标存储目录下包括至少一个数据结构定义文件,各数据结构定义文件对应于同一编程语言;
根据所述目标存储目录下搜索到的编程语言描述文件,确定与各所述数据结构定义文件匹配的目标编程语言类型;
对所述目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;
根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及所述目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果。
2.根据权利要求1所述的方法,其特征在于,根据所述目标存储目录下搜索到的编程语言描述文件,确定与各所述数据结构定义文件匹配的目标编程语言类型,包括:
遍历所述目标存储目录中包括的各文件;
将遍历得到的各文件的文件名与编程语言描述文件名集合中的各编程语言描述文件名进行匹配,获取匹配到的目标编程语言描述文件名;
获取与所述目标编程语言描述文件名匹配的目标编程语言类型。
3.根据权利要求1所述的方法,其特征在于,对所述目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息,包括:
在所述目标存储目录下,获取目标数据结构定义文件;
对所述目标数据结构定义文件的文件内容进行逐行解析,判断所述目标数据结构定义文件中是否存在包含目标关键字段的目标内容行;
若是,则根据各所述目标内容行,确定与所述目标数据结构定义文件对应的跨文件依赖描述信息。
4.根据权利要求3所述的方法,其特征在于,根据各所述目标内容行,确定与所述目标数据结构定义文件对应的跨文件依赖描述信息,包括:
滤除每个目标内容行中包含的所述目标关键字段,得到与每个目标内容行对应的依赖文件存储路径;
将各所述依赖文件存储路径,确定为与所述目标数据结构定义文件对应的跨文件依赖描述信息。
5.根据权利要求3所述的方法,其特征在于,根据各所述目标内容行,确定与所述目标数据结构定义文件对应的跨文件依赖描述信息,包括:
滤除每个目标内容行中包含的所述目标关键字段,得到每个目标内容行对应的依赖文件存储路径;
获取与各所述依赖文件存储路径分别对应的上一级存储目录;
将各所述上一级存储目录,确定为与所述目标数据结构定义文件对应的跨文件依赖描述信息。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述数据结构定义文件包括:proto文件;
根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及所述目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果,包括:
根据与每个proto文件分别对应的跨文件依赖描述信息,以及所述目标编程语言类型,构建与每个proto文件分别对应的protoc编译命令;
通过执行各所述protoc编译命令,得到与每个proto文件分别对应的编译结果。
7.根据权利要求6所述的方法,其特征在于,根据与每个proto文件分别对应的跨文件依赖描述信息,以及所述目标编程语言类型,构建与每个proto文件分别对应的protoc编译命令,包括:
获取与所述protoc编译命令匹配的标准化填充模板,所述标准化填充模板中包括多个待填充位置;
获取与所述目标编程语言类型对应的目标字符串;
将与每个proto文件分别对应的跨文件依赖描述信息、文件名、文件存储路径,以及所述目标字符串,对应填充于所述标准化填充模板中匹配的待填充位置,得到与每个proto文件分别对应的protoc编译命令。
8.一种数据结构定义文件的编译装置,其特征在于,包括:
目标存储目录获取模块,用于获取目标工程中的目标存储目录,其中,目标存储目录下包括至少一个数据结构定义文件,各数据结构定义文件对应于同一编程语言;
目标编程语言类型确定模块,用于根据所述目标存储目录下搜索到的编程语言描述文件,确定与各所述数据结构定义文件匹配的目标编程语言类型;
跨文件依赖描述信息确定模块,用于对所述目标存储目录下的各数据结构定义文件进行解析,确定与每个数据结构定义文件分别对应的跨文件依赖描述信息;
编译结果获取模块,用于根据与每个数据结构定义文件分别对应的跨文件依赖描述信息,以及所述目标编程语言类型,对每个数据结构定义文件进行编译,得到匹配的编译结果。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的方法。
CN202111623480.3A 2021-12-28 2021-12-28 数据结构定义文件的编译方法、装置、计算机设备及介质 Pending CN114281341A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111623480.3A CN114281341A (zh) 2021-12-28 2021-12-28 数据结构定义文件的编译方法、装置、计算机设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111623480.3A CN114281341A (zh) 2021-12-28 2021-12-28 数据结构定义文件的编译方法、装置、计算机设备及介质

Publications (1)

Publication Number Publication Date
CN114281341A true CN114281341A (zh) 2022-04-05

Family

ID=80876937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111623480.3A Pending CN114281341A (zh) 2021-12-28 2021-12-28 数据结构定义文件的编译方法、装置、计算机设备及介质

Country Status (1)

Country Link
CN (1) CN114281341A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878125A (zh) * 2022-11-11 2023-03-31 盐城金堤科技有限公司 生成类的扩展方法、装置、存储介质及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878125A (zh) * 2022-11-11 2023-03-31 盐城金堤科技有限公司 生成类的扩展方法、装置、存储介质及电子设备
CN115878125B (zh) * 2022-11-11 2024-02-06 盐城天眼察微科技有限公司 生成类的扩展方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN109885311B (zh) 一种应用程序的生成方法及设备
CN114115852A (zh) 可视化服务编排方法、装置、设备及介质
US20060265469A1 (en) XML based scripting framework, and methods of providing automated interactions with remote systems
CN111309332A (zh) 文件内容按需加载方法、装置及电子设备、存储介质
CN114115841A (zh) 数据流接口动态编排方法、装置、设备、介质及程序产品
CN110674083A (zh) 工作流迁移方法、装置、设备及计算机可读存储介质
CN111240987B (zh) 移植程序检测方法、装置、电子设备及计算机可读存储介质
CN111580821B (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
CN116414774A (zh) 文件迁移方法、装置、设备及存储介质
CN114281341A (zh) 数据结构定义文件的编译方法、装置、计算机设备及介质
CN110554857B (zh) JavaBean生成方法、装置、系统及可读存储介质
CN113885844A (zh) 一种业务服务编排方法及相关装置
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
JP2000216855A (ja) 通信システム用のコンフィグレ―ションデ―タを編集するための、方法、エディタ、コンピュ―タ、制御モジュ―ル、および記憶手段
CN115525534A (zh) 基于swagger的接口测试的测试用例生成方法、生成平台
CN110806891B (zh) 嵌入式设备软件版本的生成方法及装置
CN114296738A (zh) 一种编译目录的确定方法、计算机设备及存储介质
CN112783791A (zh) 接口测试案例的生成方法及装置
CN115033312B (zh) ElasticSearch数据操作方法及装置
CN111309319A (zh) 可继承的局数据动态页面配置方法和装置
CN115981614A (zh) 项目工程的模块化处理方法、电子设备及计算机存储介质
CN114816364A (zh) 基于Swagger动态生成范本文件的方法、装置及应用
CN114371982A (zh) 一种模拟测试方法、装置、设备及可读存储介质
JP2006236375A (ja) Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラム
CN114816385B (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