编译方法及装置与流程

文档序号:11063384阅读:534来源:国知局
编译方法及装置与制造工艺

本发明涉及计算机技术领域,尤其涉及一种编译方法及装置。



背景技术:

云编译客户端通过分析代码配置文件提取数据在网页上显示,同时供使用者修改,修改完后可以生成新的代码配置文件。传统的编译方法是,当发起编译时,将代码配置文件传递到代码中即为代码编译文件,可直接供代码编译使用。

对于不同的方案供应商,不同的平台,代码编译文件的格式各不相同(如,C、H、SQL等格式)。传统的直接解析代码编译文件的方法极大的限制了适配,通用性差。



技术实现要素:

基于此,有必要提供一种通用性强的编译方法及装置。

一种编译方法,包括:

获取发起对统一代码配置文件进行自动编译的发起信息,所述统一代码配置文件通过统一的数据格式采用统一关键字描述数据配置信息;不少于两种文件格式的代码配置文件的语义相同的关键字均对应同一组所述统一关键字;所述代码配置文件采用与所述文件格式对应的数据格式的关键字描述数据配置信息;

根据所述发起信息提取待编译的待译统一代码配置文件;

根据配置译码映射表将所述待译统一代码配置文件转换为代码编译文件;所述配置译码映射表包括统一关键字与代码编译文件的关键字的映射关系;

对所述代码编译文件及与所述待译统一代码配置文件属于同一项目的项目代码文件进行编译。

一种编译装置,包括:

发起信息获取模块,用于获取发起对统一代码配置文件进行自动编译的发起信息,所述统一代码配置文件通过统一的数据格式采用统一关键字描述数据配置信息;不少于两种文件格式的代码配置文件的语义相同的关键字均对应同一组所述统一关键字;所述代码配置文件采用与所述文件格式对应的数据格式的关键字描述数据配置信息;

待译文件提取模块,用于根据所述发起信息提取待编译的待译统一代码配置文件;

待译文件转换模块,用于根据配置译码映射表将所述待译统一代码配置文件转换为代码编译文件;所述配置译码映射表包括统一关键字与代码编译文件的关键字的映射关系;项目文件编译模块,用于对所述代码编译文件及与所述待译统一代码配置文件属于同一项目的项目代码文件进行编译。

上述编译方法及装置,获取发起对统一代码配置文件进行自动编译的发起信息,所述统一代码配置文件通过统一的数据格式采用统一关键字描述数据配置信息;不少于两种文件格式的代码配置文件的语义相同的关键字均对应同一组所述统一关键字;所述代码配置文件采用与所述文件格式对应的数据格式的关键字描述数据配置信息;根据所述发起信息提取待编译的待译统一代码配置文件;根据配置译码映射表将所述待译统一代码配置文件转换为代码编译文件;所述配置译码映射表包括所述统一关键字与代码编译文件的关键字的映射关系;对所述代码编译文件及与所述待译统一代码配置文件属于同一项目的项目代码文件进行编译。由于该编译方法中的统一配置代码文件通过统一的数据格式采用统一关键字描述数据配置信息,而不是采用直接通过代码编译文件的文件格式对应的数据格式(也即代码配置文件的文件格式对应的数据格式)的关键字来描述数据配置信息,因此,其通用性高,可灵活适配不同的方案供应商或平台。

附图说明

图1为一实施例的编译方法的流程图;

图2为另一实施例的编译方法的流程图;

图3为一实施例的编译方法在客户端运行时的一个截图;

图4为一实施例的编译装置的结构图;

图5为另一实施例的编译装置的结构图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“或/和”包括一个或多个相关的所列项目的任意的和所有的组合。

如图1所示,为本发明一实施例的编译方法,该方法运行在编译服务器上。与编译服务器具有数据关联的有云编译平台及客户端。其中,云编译平台上存储有项目代码文件以及对项目代码文件进行编译后得到并发布的可执行程序;客户端作为客户与云编译平台上存储的可执行程序的交互接口,向云编译平台发起访问请求,并接收云编译平台反馈的信息;编译服务器对项目代码文件进行编译并将编译得到的可执行文件发布到云编译平台。

本发明一实施例的编译方法,包括:

S120:获取发起对统一代码配置文件进行自动编译的发起信息。所述统一代码配置文件通过统一的数据格式采用统一关键字描述数据配置信息;不少于两种文件格式的代码配置文件的语义相同的关键字均对应同一组所述统一关键字;所述代码配置文件采用与所述文件格式对应的数据格式的关键字描述数据配置信息。。

客户端提交请求时,可以发送一个发起对统一代码配置文件进行自动编译的发起命令至云编译平台。云编译平台根据该发起命令,发送发起信息至编译服务器以对统一代码配置文件进行自动编译。编译服务器获取该发起信息。

S160:根据所述发起信息提取待编译的待译统一代码配置文件。

发起信息包括待编译的待译统一代码配置文件的文件标识。根据发起信息中的文件标识提取待编译的待译统一代码配置文件。待译统一代码配置文件即为需要编译的统一代码配置文件。

具体地,根据发起信息中的文件标识及待译统一代码配置文件的存储地址提取待编译的统一代码配置文件。在该具体实施例中,发起信息还包括待译统一代码配置文件的存储地址。

S170:根据配置译码映射表将所述待译统一代码配置文件转换为代码编译文件。所述配置译码映射表包括统一关键字与代码编译文件的关键字的映射关系。具体地,发起信息中还包括目标文件格式。根据配置译码映射表及发起信息将所述待译统一代码配置文件转换为目标文件格式的代码编译文件。目标文件格式为不少于两文件格式中的一种格式。

需要说明的是传统编译方法中代码配置文件与代码编译文件的格式是相同的,只是存储的位置不同。在本实施例中,采用统一代码配置文件替换了传统的代码配置文件,即,无论代码编译文件需要什么样的数据格式,均通过统一的数据格式采用统一关键字描述数据配置信息。从而无需通过各种数据格式对应的关键字来描述数据配置信息。

S180:对所述代码编译文件及与所述待译统一代码配置文件属于同一项目的项目代码文件进行编译。

如此,对一个项目进行编译,可以得到编译后的编译结果,具体为一个二进制的可执行程序。

上述编译方法,获取发起对统一代码配置文件进行自动编译的发起信息,所述统一代码配置文件通过统一的数据格式采用统一关键字描述数据配置信息;不少于两种文件格式的代码配置文件的语义相同的关键字均对应同一组所述统一关键字;所述代码配置文件采用与所述文件格式对应的数据格式的关键字描述数据配置信息;根据所述发起信息提取待编译的待译统一代码配置文件;根据配置译码映射表将所述待译统一代码配置文件转换为代码编译文件;所述配置译码映射表包括统一关键字与代码编译文件的关键字的映射关系;对所述代码编译文件及与所述待译统一代码配置文件属于同一项目的项目代码文件进行编译。由于该编译方法中的统一配置代码文件通过统一的数据格式采用统一关键字描述数据配置信息,而不是采用直接通过代码编译文件的文件格式对应的数据格式(也即代码配置文件的文件格式对应的数据格式)的关键字来描述数据配置信息,因此,其通用性高,可灵活适配不同的方案供应商或平台。

需要说明的是,由于该编译方法通用性高、可灵活适配不同的方案供应商或平台,可以减少工程师切换方案的学习成本。同时,不误对不同方案做特殊处理,可以降低云编译系统的维护成本。因此,上述编译方法,可以节约成本。

为理解方便,举一个例子。如,若一个项目代码文件为SQL文件,该项目代码文件相关的代码编译文件也应该为SQL文件,即发起信息中的目标格式应该为SQL语言格式。传统编译方法中代码配置文件也应该采用SQL语言格式描述数据配置信息,才能直接进行编译。本实施例中,代码配置文件采用的是统一代码配置文件,即是一种统一的数据格式描述数据配置信息的语言格式,如,可以为C语言格式,也即,在本示例中,用C语言格式来描述SQL语言格式中的关键字。若另一个项目文件为H文件(头文件或者宏文件)或者JAVA文件,在本示例中,也是采用C语言格式描述数据配置信息,而不是用为H文件或者JAVA文件对应的宏或者JAVA语言描述数据配置信息。需要说明的是,若还有一个项目文件本来就是C文件,在用统一的数据格式C语言描述该C文件时,其内部数据结构采用统一的数据格式中所定义的方式。

请参阅图2,在其中一个实施例中,所述根据所述发起信息提取待编译的待译统一代码配置文件的步骤之前,即步骤S160之前,还包括:

S140:当根据所述发起信息判定云编译系统有新建的待译统一web配置文件时,根据所述发起信息获取所述待译统一web配置文件。所述待译统一web配置文件采用统一的格式描述web配置信息。

S150:根据web配置映射表将所述待译统一web配置文件转换为所述待译统一代码配置文件。所述web配置映射表包括所述待译统一web配置文件的关键字与所述待译统一代码配置文件中的数据的映射关系。所述待译统一代码配置文件中的每一个数据均对应所述统一web配置文件中的一个关键字。

在本实施例中,用户可以通过客户端,修改数据配置信息。若有修改,客户端将新建一个待译统一web配置文件,并将该待译统一web配置文件上传至云编译平台上的云编译系统。发起信息还包括云编译系统中是否有新建的待译统一web配置文件,若有,则发起信息还包括待译统一web配置文件的存储路径,否则,发起信息中的存储待译统一web配置文件的存储路径的位置为空。

在一个具体实施例中,根据web配置映射表将所述待译统一web配置文件转换为所述待译统一代码配置文件之后,还需将待译统一代码配置文件存储到发起信息中待议统一代码配置文件的存储路径上。

如此,可以根据客户的需求,具体根据在客户端新建的待译统一web配置文件来修改数据配置信息,并将修改后的待译统一web配置文件转换为统一代码配置文件,进而再转换成代码编译文件,最后对该代码编译文件进行编译。因此,该编译方法可以实现对客户端的进行的数据配置信息修改进行及时的编译。

在其中一个实施例中,所述获取发起对统一代码配置文件进行自动编译的发起信息的步骤之前,即步骤S120之前,还包括:

S110:根据所述web配置映射表将预设的统一代码配置文件转换成统一web配置文件,并将所述统一web配置文件上传至所述云编译系统。

在整个项目发布到各个客户端时,需要将项目代码文件中的统一代码配置文件转换成统一web配置文件,并将所述统一web配置文件上传至所述云编译系统,以使得各个客户端可以下载该统一web配置文件,并根据该统一web配置文件通过网页对统一代码配置文件中的数据配置信息进行数据显示。从而,客户可以通过客户端新增统一web配置文件的方式对统一代码配置文件进行修改。

在一个具体实施例中,步骤S110之前,还可以包括:获取云编译系统发起自动配置时发送的自动配置指令;更新与所述统一代码配置文件属于同一项目的项目代码文件;将预设的统一代码配置文件拷贝到缓存区。其中,自动配置指令可以为云编译系统在预设时间发起自动配置时发送的。预设时间可以为每天的0点或/及12点,可以理解地,在其它实施例中,预设时间也可以设置为其它时间。

在其中一个实施例中,配置译码映射表及web配置映射表设置在同一个表中,该表命名为标准文件映射表。如此,可以不区分多个映射表。可以理解地,在其它区分这两个映射表的实施例中,由于两个映射表分开设置,每个映射表的内容均较小,如此,可以节约转换时间,从而,提高编译方法的运行速度。

在其中一个实施例中,所述对所述代码编译文件及与所述待译统一代码配置文件属于同一项目的代码进行编译的步骤之后,即步骤S180之后,还包括:

S190:发布编译结果至新建所述待译统一web配置文件的客户端。

如此,可以将在客户端修改的数据配置信息,反应到对应的客户端。

在其中一个实施例中,发起信息中包括发布范围。通过发布范围来限定发布的客户端。如,由项目组的开发人员,发起的编译,可以将发布范围设定为所有的客户端或指定的部分客户端;而由客户端发起的编译,可以将发布范围设定为该客户端自身。可以理解地,在本实施例中,步骤S190为,根据发起信息发布编译结果至对应的客户端。

在其中一个实施例中,所述根据所述发起信息提取待编译的待译统一代码配置文件的步骤之前,即步骤S160,还包括:

S130:更新与所述统一代码配置文件属于同一项目的项目代码文件。

如此,可以在进行编译前,先更新项目代码文件。从而,保证编译方法编译的项目代码文件的为最新的项目代码文件。

在一个具体实施例中,统一web配置文件的泛型定义格式为:

{

DESCRIPTION:{……}//文件版本以及其他描述信息

数组关键字1:{

name:数组网页显示名称//NONE(NONE表示该数据不在网页上配置,只//会被原封不动继承)

RANGE{

数值1关键字:{name:网页显示名称,min:最小值,max:最大值};

数值2关键字:{}

……

"info":{//根据需要特殊补充(一般不用)

DATA1KEY2A:{max:最大值,min:最小值},

DATA1KEY2B:{max:最大值},

}

};

DATA1KEY1:{

DATA1KEY2A:{数值1关键字:数值,数值2关键字:数值……};

DATA1KEY2B

};

DATA2KEY1:{};

……

}

NONE:{

DATA1KEY1:(其他不上网页配置的数据}

……

}

数组关键字2:{}

……

}

其中,DESCRIPTION/RANGE/NONE/info都是已经约定的特殊的不可再被项目定义的关键字。

其中,DATA1KEY1/DAYA2KEY2构成网页显示的二维表格。请参阅图3,DTV/ATV等对应DATA1KEY1,COLD/NORMAL等对应DATA1KEY2X,OFFSET/GAIN等对应RANGE中的数值关键字。

请参阅图4,本发明还提供一种实施方式的编译装置,包括:

发起信息获取模块420,用于获取发起对统一代码配置文件进行自动编译的发起信息。所述统一代码配置文件通过统一的数据格式采用统一关键字描述数据配置信息;不少于两种文件格式的代码配置文件的语义相同的关键字均对应同一组所述统一关键字;所述代码配置文件采用与所述文件格式对应的数据格式的关键字描述数据配置信息。

待译文件提取模块460,用于根据所述发起信息提取待编译的待译统一代码配置文件;

待译文件转换模块470,用于根据配置译码映射表将所述待译统一代码配置文件转换为代码编译文件;所述配置译码映射表包括统一关键字与代码编译文件的关键字的映射关系;

项目文件编译模块480,用于对所述代码编译文件及与所述待译统一代码配置文件属于同一项目的项目代码文件进行编译。

上述编译装置,获取发起对统一代码配置文件进行自动编译的发起信息,所述统一代码配置文件通过统一的数据格式采用统一关键字描述数据配置信息;不少于两种文件格式的代码配置文件的语义相同的关键字均对应同一组所述统一关键字;所述代码配置文件采用与所述文件格式对应的数据格式的关键字描述数据配置信息;根据所述发起信息提取待编译的待译统一代码配置文件;根据配置译码映射表将所述待译统一代码配置文件转换为代码编译文件;所述配置译码映射表包括统一关键字与代码编译文件的关键字的映射关系;对所述代码编译文件及与所述待译统一代码配置文件属于同一项目的项目代码文件进行编译。由于该编译装置中的统一配置代码文件通过统一的数据格式采用统一关键字描述数据配置信息,而不是采用直接通过代码编译文件的文件格式对应的数据格式(也即代码配置文件的文件格式对应的数据格式)的关键字来描述数据配置信息,因此,其通用性高,可灵活适配不同的方案供应商或平台。

请参阅图5,在其中一个实施例中,还包括:待译web获取模块440及待译web转换模块450;

所述待译web获取模块440,用于当根据所述发起信息判定云编译系统有新建的待译统一web配置文件时,根据所述发起信息获取所述待译统一web配置文件;所述待译统一web配置文件采用统一的格式描述web配置信息;

所述待译web转换模块450,用于根据web配置映射表将所述待译统一web配置文件转换为所述待译统一代码配置文件;所述web配置映射表包括所述待译统一web配置文件的关键字与所述待译统一代码配置文件中的数据的映射关系;所述待译统一代码配置文件中的每一个数据均对应所述统一web配置文件中的一个关键字;

所述待译文件提取模块460,用于根据所述发起信息提取所述待译统一代码配置文件。

请继续参阅图5,在其中一个实施例中,还包括:

web配置上传模块410,用于根据所述web配置映射表将预设的统一代码配置文件转换成统一web配置文件,并将所述统一web配置文件上传至所述云编译系统。

请继续参阅图5,在其中一个实施例中,还包括:

编译结果发布模块490,用于在所述项目文件编译模块580进行编译之后,根据发起信息发布编译结果至对应的客户端。

请继续参阅图5,在其中一个实施例中,还包括:

项目文件更新模块430,用于更新与所述统一代码配置文件属于同一项目的项目代码文件。

由于上述装置与上述方法对应,因此,对于装置的细节技术特征不再一一赘述。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出多个变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1