软件开发项目的代码编译方法、装置、设备和存储介质与流程

文档序号:19417828发布日期:2019-12-14 01:06阅读:248来源:国知局
软件开发项目的代码编译方法、装置、设备和存储介质与流程

本发明涉及软件开发技术领域,特别是涉及一种软件开发项目的代码编译方法、软件开发项目的代码编译装置、计算机设备和计算机可读存储介质。



背景技术:

软件开发是指基于用户需求从而构建软件系统或构建系统中的软件部分的过程。随着信息技术的发展,对软件的需求越来越高,软件开发的工作量也随之越来越大,一个软件开发项目通常需要多个开发终端共同来开发,而多个开发终端共同开发一个软件,会涉及开发终端耦合、代码权限控制等问题。

在传统技术当中,各个开发终端共同维护同一个代码仓库,即各个开发终端共同开发的一个软件的所有代码都在同一个代码仓库当中,这样开发终端在代码编译过程中,容易受其他开发终端对其正在编译的代码的影响而发生编译错误,导致这种技术对代码进行编译的效率较低。



技术实现要素:

基于此,有必要针对传统技术对代码进行编译的效率较低的技术问题,提供一种软件开发项目的代码编译方法、软件开发项目的代码编译装置、计算机设备和计算机可读存储介质。

一种软件开发项目的代码编译方法,包括步骤:

接收开发终端发送的终端标识;

根据所述终端标识获取所述开发终端的代码仓库访问权限;

在多个业务模块代码仓库中确定与所述代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,所述多个业务模块代码仓库基于所述开发终端的终端标识进行权限隔离;

将所述业务模块代码发送至所述开发终端,用于所述开发终端对所述业务模块代码进行编译处理。

一种软件开发项目的代码编译方法,包括步骤:

将终端标识发送至服务器,用于所述服务器根据所述终端标识获取相应的代码仓库访问权限,并在多个业务模块代码仓库中确定与所述代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,所述多个业务模块代码仓库基于所述开发终端的终端标识进行权限隔离;

接收所述服务器发送的所述业务模块代码;

对所述业务模块代码进行编译处理。

一种软件开发项目的代码编译装置,包括:

标识接收模块,用于接收开发终端发送的终端标识;

权限获取模块,用于根据所述终端标识获取所述开发终端的代码仓库访问权限;

代码获取模块,用于在多个业务模块代码仓库中确定与所述代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,所述多个业务模块代码仓库基于所述开发终端的终端标识进行权限隔离;

第一编译模块,用于将所述业务模块代码发送至所述开发终端,用于所述开发终端对所述业务模块代码进行编译处理。

一种软件开发项目的代码编译装置,包括:

标识发送模块,用于将终端标识发送至服务器,用于所述服务器根据所述终端标识获取相应的代码仓库访问权限,并在多个业务模块代码仓库中确定与所述代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,所述多个业务模块代码仓库基于所述开发终端的终端标识进行权限隔离;

代码接收模块,用于接收所述服务器发送的所述业务模块代码;

第二编译模块,用于对所述业务模块代码进行编译处理。

一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:

接收开发终端发送的终端标识;根据所述终端标识获取所述开发终端的代码仓库访问权限;在多个业务模块代码仓库中确定与所述代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,所述多个业务模块代码仓库基于所述开发终端的终端标识进行权限隔离;将所述业务模块代码发送至所述开发终端,用于所述开发终端对所述业务模块代码进行编译处理。

一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如下步骤:

将终端标识发送至服务器,用于所述服务器根据所述终端标识获取相应的代码仓库访问权限,并在多个业务模块代码仓库中确定与所述代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,所述多个业务模块代码仓库基于所述开发终端的终端标识进行权限隔离;接收所述服务器发送的所述业务模块代码;对所述业务模块代码进行编译处理。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:

接收开发终端发送的终端标识;根据所述终端标识获取所述开发终端的代码仓库访问权限;在多个业务模块代码仓库中确定与所述代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,所述多个业务模块代码仓库基于所述开发终端的终端标识进行权限隔离;将所述业务模块代码发送至所述开发终端,用于所述开发终端对所述业务模块代码进行编译处理。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:

将终端标识发送至服务器,用于所述服务器根据所述终端标识获取相应的代码仓库访问权限,并在多个业务模块代码仓库中确定与所述代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,所述多个业务模块代码仓库基于所述开发终端的终端标识进行权限隔离;接收所述服务器发送的所述业务模块代码;对所述业务模块代码进行编译处理。

上述软件开发项目的代码编译方法、装置、设备和存储介质,开发终端将其终端标识发送至服务器,服务器接收终端标识,并根据该终端标识获取开发终端的代码仓库访问权限,然后在多个业务模块代码仓库中确定与该代码仓库访问权限相匹配的业务模块代码仓库,并从该业务模块代码仓库中获取业务模块代码,该多个业务模块代码仓库基于开发终端的终端标识进行权限隔离,然后服务器将该业务模块代码发送至开发终端,使得开发终端对该业务模块代码进行编译处理。该方案能够基于各个开发终端的终端标识将多个业务模块代码仓库进行权限隔离,使得开发终端仅能访问具有相应访问权限的业务模块代码仓库,避免对其他开发终端的业务模块代码造成影响,各个开发终端能够独立对相应的业务模块代码进行编译测试,提高了代码编译效率。

附图说明

图1为一个实施例中软件开发项目的代码编译方法的应用场景图;

图2为一个实施例中软件开发项目的代码编译方法的流程示意图;

图3为一个实施例中业务模块之前的页面跳转示意图;

图4为一个实施例中标准状态编码的示意图;

图5为一个实施例中合包编译的流程图;

图6为传统代码编译方法的原理图;

图7为一个实施例中代码编译方法的原理图;

图8为另一个实施例中软件开发项目的代码编译方法的流程示意图;

图9为一个实施例中软件开发项目的代码编译装置的结构框图;

图10为另一个实施例中软件开发项目的代码编译装置的结构框图;

图11为一个实施例中计算机设备的内部结构图;

图12为另一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

需要说明的是,本发明实施例所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

本发明提供的软件开发项目的代码编译方法,可以应用于如图1所示的应用场景中,图1为一个实施例中软件开发项目的代码编译方法的应用场景图,该应用场景可以包括开发终端110和服务器200,其中,该开发终端110的数量可以是多个,各个开发终端110可以通过互联网连接至服务器200,各个开发终端110可以通过服务器200维护软件开发项目的相关软件代码。

具体的,开发终端110可以向服务器200发送其终端标识,服务器200接收到该终端标识后,根据该终端标识获取开发终端110的代码仓库访问权限,然后从多个业务模块代码仓库当中确定与该代码仓库访问权限配的业务模块代码仓库,并从该业务模块代码仓库中获取业务模块代码,其中,多个业务模块代码仓库是基于开发终端110的终端标识进行权限隔离的。接着,服务器200可以将该业务模块代码发送至开发终端110,使得该开发终端110对该业务模块代码进行编译处理。其中,开发终端110可以但不限于是各种个人计算机、笔记本电脑和平板电脑,服务器200可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,提供了一种软件开发项目的代码编译方法,参考图2,图2为一个实施例中软件开发项目的代码编译方法的流程示意图,该方法可以基于如图1所示的服务器200实现,该软件开发项目的代码编译方法可以包括以下步骤:

步骤s101,接收开发终端发送的终端标识。

本步骤主要是在对软件开发项目的代码进行编译之前,开发终端110先将其终端标识发送给服务器200,服务器200可以通过互联网接收开发终端110发送的终端标识,由于开发终端110的数量一般是多个,各个开发终端110共同来开发一个软件开发项目,开发终端110的终端标识,主要用于对各个开发终端110进行区分,便于后续步骤将相应的代码反馈至对应的开发终端,避免代码访问混乱。举例来说,假设开发终端110的数量为四个,则可以分别将各个开发终端110的终端标识设置为:a、b、c和d,用于将各个开发终端110进行区分,开发终端110可以在需要对代码仓库的代码进行编译时,先将其终端标识发送给服务器200。

步骤s102,根据终端标识获取开发终端的代码仓库访问权限。

本步骤中,服务器200根据开发终端110发送的终端标识,获取该开发终端110的代码仓库访问权限。其中,服务器200可以预先为软件开发项目的各个开发终端设置代码仓库访问权限,使得某个开发终端只能具有特定的代码仓库访问权限,该服务器200可以预先建立终端标识与代码仓库访问权限的对应关系,当服务器200接收到开发终端110发送的终端标识后,即可根据该对应关系获取该开发终端110的代码仓库访问权限。

步骤s103,在多个业务模块代码仓库中确定与代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,多个业务模块代码仓库基于开发终端的终端标识进行权限隔离。

本步骤中,服务器200可以对软件开发项目的多个业务模块代码仓库进行访问,还能够从各个业务模块代码仓库当中提取相应的业务模块代码,而开发终端110则可以通过服务器200对这些业务模块代码仓库进行访问并获取业务模块代码。而为了使得各个开发终端110在对代码仓库的代码进行访问时不会干扰到其他开发终端110的软件代码,服务器200可以基于各个开发终端110的终端标识预先为各个业务模块代码仓库进行权限隔离处理,权限隔离是指各个开发终端110只能够对其访问权限范围之内的代码仓库进行访问,而不能够对其访问权限范围之外的代码仓库进行访问,而服务器200在获取开发终端110的代码仓库访问权限后,在多个业务代码仓库中确定与该代码仓库访问权限相匹配的业务模块代码仓库,然后从该业务模块代码仓库中获取业务模块代码。

步骤s104,将业务模块代码发送至开发终端,用于开发终端对业务模块代码进行编译处理。

本步骤主要是服务器200在获取业务模块代码以后,将该业务模块代码反馈给相应的开发终端110,使得具有代码访问权限的开发终端110接收到该业务模块代码以后,可以对该业务模块代码进行编译测试。

上述软件开发项目的代码编译方法,开发终端将其终端标识发送至服务器,服务器接收终端标识,并根据该终端标识获取开发终端的代码仓库访问权限,然后在多个业务模块代码仓库中确定与该代码仓库访问权限相匹配的业务模块代码仓库,并从该业务模块代码仓库中获取业务模块代码,该多个业务模块代码仓库基于开发终端的终端标识进行权限隔离,然后服务器将该业务模块代码发送至开发终端,使得开发终端对该业务模块代码进行编译处理。该方案能够基于各个开发终端的终端标识将多个业务模块代码仓库进行权限隔离,使得开发终端仅能访问具有相应访问权限的业务模块代码仓库,避免对其他开发终端的业务模块代码造成影响,各个开发终端能够独立对相应的业务模块代码进行编译测试,提高了代码编译效率。

一个软件开发项目一般会被划分为多个业务模块和公共模块,各个业务模块的软件代码即为业务模块代码,分别存储在相应的业务模块代码仓库当中,由相应的开发终端110通过服务器200进行维护,而在开发终端110可以基于其维护的业务模块代码结合公共模块对应的公共模块代码进行编译。在一个实施例中,步骤s104中的将业务模块代码发送至开发终端,用于开发终端对业务模块代码进行编译处理的步骤,可以进一步包括:

从公共模块代码仓库中获取公共模块代码;将公共模块代码和业务模块代码发送至开发终端,用于开发终端对公共模块代码和业务模块代码进行编译处理。

本实施例主要是服务器200还可以对软件开发项目的公共模块代码仓库进行访问,获取公共模块代码,并将该公共模块代码和业务模块代码一起发送至开发终端110进行编译,使得开发终端110可以直接调用公共模块里的sdk、组件和页面代码等,提高代码编译的效率。进一步的,公共模块代码仓库还可以有更新需求,服务器200可以将更新的公共模块代码更新到开发终端110,具体的,开发终端110可以向服务器200发送公共模块代码更新请求,服务器200可以根据该公共模块代码更新请求获取更新的公共模块代码发送给开发终端110。

在一个实施例中,如图3所示,图3为一个实施例中业务模块之前的页面跳转示意图,由于各个业务模块代码分别由相应的开发终端110通过服务器200进行维护,这样各个开发终端110不能查看到主模块代码和其他业务模块代码,使得主模块代码与各子模块代码或各子模块代码之间并无直接偶合关系,只能通过使用sdk方法进行页面统一路径跳转,sdk的具体形式可以为:

sdk.navigateto({

url:“sub-b/page-a”

})

基于上述sdk方法,可以在业务模块a和业务模块b之前实现页面跳转,从而便于在业务模块代码开发过程中在关联的业务模块的相应页面进行参考,提高代码编译的质量。

在一个实施例中,步骤s103中的从该业务模块代码仓库中获取业务模块代码的步骤,可以包括:

获取软件开发项目的规范配置文件;从规范配置文件中提取地址列表;地址列表记录多个代码仓库的访问地址,分别对应于多个业务模块代码仓库;基于地址列表中与业务模块代码仓库相对应的访问地址,获取业务模块代码。

本实施例主要是服务器200可以基于软件开发项目的规范配置文件获取各个业务模块代码仓库的访问地址,并基于该访问地址获取相应的业务模块代码。具体来说,在软件开发项目当中,不同的软件类型(桌面软件、web系统、android、iso和微信小程序等)具有不同的代码模块规范,而一个软件开发项目只能是一种软件类型,其代码模块规范由规范配置文件进行记录,在规范配置文件中可以规定软件开发项目的各个业务模块代码仓库和公共模块代码仓库的相关信息例如,各个业务模块代码仓库的访问地址,各个业务模块代码仓库和公共模块代码仓库之间的关系等信息,以config.json为例对规范配置文件进行说明,config.json的具体形式可以是:

其中,该规范配置文件config.json通常配置在软件开发项目的主模块代码目录下,而对于不同的软件类型,因其软件特性不同,可以由不同的目录文档结构,以微信小程序为例,微信小程序的目录文档结构可以是:

project-name

├──components//组件库

│├──pub-sdk//公共模块sdk

│└──pub-ui//公共模块组件

├──pages

│├──pub-page//公共模块页面

│└──index//项目首页

├──constant//常量目录

│├──cgi.js

│├──config.js//全局配置

│└──env.js//全局环境变量,如生产环境prod、开发环境dev、测试环境test

├──images//图片目录

├──third//依赖目录,可自行添加需要的模块,如:utils、model

├──app.js//业务模块app.*相会失效,以主模块app.*为准

├──app.json

├──app.wxss

├──main-app.js/sub-app.js//项目规范约定文件,代替app.js

├──config.json//规范配置文件

└──project.config.json//小程序配置文件

因此,服务器200可以从主模块代码仓库当中获取主模块代码,在主模块代码的目录下获取软件开发项目的规范配置文件,其中,可以在终端上执行初始化命令commandinit通过传项目名称和项目类型,按照目录文档结构规范生成符合规范的目录文件,例如:commandinit-type=miniprogramproject-name,其中type参数可选为:soft、android、ios和miniprogram。然后,在该规范配置文件当中可以提取出地址列表,该地址列表记录有多个代码仓库的访问地址,可以分别对应于多个业务模块代码仓库,即根据该地址列表,服务器200可以访问各个业务模块代码仓库,这样,在服务器200确定了开发终端110具有访问权限的业务模块代码仓库后,可以从地址列表中获取相应的访问地址,基于该访问地址从业务模块代码仓库中下载业务模块代码。

本实施例不限定代码仓库的具体形式,可以是svn、git或npm包,其访问地址可以是一个服务器的访问地址,例如:

ssh://git@gitlab.com/frontend/main.git。

本实施例的技术方案,由于规范配置文件通常在软件开发项目初期即配置完成,根据该规范配置文件能够准确找到相关代码仓库的访问地址,避免由于代码仓库的访问地址出错而造成代码编译出错,从而有利于提高代码编译效率。

软件开发项目的各个业务模块分别由多个开发终端110进行维护,除了开发终端110以外,项目管理终端也可以对服务器200进行访问,该项目管理终端主要用于对该软件开发项目的各个业务模块、公共模块和主模块进行管理,在多个开发终端110对各个业务模块的编译测试完成后,项目管理终端可以将软件开发项目的所有模块进行合包编译,在一个实施例中,上述软件开发项目的代码编译方法,还可以包括如下步骤:

接收项目管理终端发送的合包编译请求;根据软件开发项目的规范配置文件,确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库;响应于合包编译请求,获取主模块代码仓库中的主模块代码、多个业务模块代码仓库中的业务模块代码和公共模块代码仓库中的公共模块代码,发送至项目管理终端,用于项目管理终端对主模块代码、多个业务模块代码和公共模块代码进行合包编译。

本实施例中,软件开发项目被划分为主模块、多个业务模块和公共模块,主模块代码存储在主模块代码仓库中,多个业务模块代码存储在不同的业务模块代码仓库中,而公共模块代码存储在公共模块代码仓库中,其中,软件开发项目的各个代码仓库实行严格权限管理,主模块代码仓库由项目管理终端进行管理,各业务模块代码仓库只有具有特定权限的开发终端110进行维护,各业务模块代码仓库相互之间没有耦合,而在各个开发终端110对相应的业务模块代码进行独立运行测试以后,项目管理终端可以进行合包编译。具体来说,项目管理终端可以向服务器200发送合包编译请求,服务器200可以获取软件开发项目的规范配置文件,对该规范配置文件进行分析,从而可以确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库,并从该规范配置文件中获取各个代码仓库的访问地址,然后,服务器200可以基于各个代码仓库的访问地址,从主模块代码仓库中下载主模块代码、从多个业务模块代码仓库中分别下载多个业务模块代码以及从公共模块代码仓库中下载公共模块代码,接着,服务器200可以将该主模块代码、多个业务模块代码和公共模块代码发送给项目管理终端进行合包编译。

除了在项目管理终端上进行合包编译,为了方便对软件代码进行测试,还可以直接在服务器200上进行合包编译处理。在一个实施例中,上述软件开发项目的代码编译方法,还可以包括如下步骤:

接收项目管理终端发送的合包编译指令;根据软件开发项目的规范配置文件,确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库;获取主模块代码仓库中的主模块代码、多个业务模块代码仓库中的业务模块代码和公共模块代码仓库中的公共模块代码;响应于合包编译指令,对主模块代码、多个业务模块代码和公共模块代码进行合包编译。

本实施例中,软件开发项目的管理人员可以在项目管理终端上触发合包编译指令,然后项目管理终端将该合包编译指令发送至服务器200,服务器200可以在接收到该合包编译指令后,对软件开发项目的各个模块代码进行合包编译。具体的,服务器200可以获取软件开发项目的规范配置文件,对该规范配置文件进行分析,从而可以确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库,并从该规范配置文件中获取各个代码仓库的访问地址,然后,服务器200可以基于各个代码仓库的访问地址,从主模块代码仓库中下载主模块代码、从多个业务模块代码仓库中分别下载多个业务模块代码以及从公共模块代码仓库中下载公共模块代码,接着服务器200则对该主模块代码、多个业务模块代码和公共模块代码进行合包编译处理。

进一步的,在一个实施例中,在对主模块代码、多个业务模块代码和公共模块代码进行合包编译的步骤之后,还可以包括如下步骤:

获取合包编译状态;若合包编译状态为合包编译成功,则获取完整软件包的二维码,发送至开发终端和/或项目管理终端;其中,完整软件包为对主模块代码、多个业务模块代码和公共模块代码进行合包编译得到的软件包。

其中,合包编译状态可以包括合包编译成功和合包编译失败,若合包编译状态为合包编译成功,可以获取完整的软件包的二维码,发送给开发终端110和/或项目管理终端,使得开发人员和项目管理人员可以通过其移动终端扫描该二维码,下载或直接启动该软件包,如小程序,可以直接在手机上启动并预览。

在一个实施例中,若合包编译状态为合包编译失败,则获取合包编译过程中产生的异常状态并确定异常业务代码;异常业务代码为产生异常状态的业务模块代码;从预先配置的标准状态编码字段集合中,获取与异常状态相对应的第一编码字段以及与异常业务代码相对应的第二编码字段;将第一编码字段和第二编码字段进行组合,得到合包编译的状态编码。

本实施例主要是在合包编译失败的情况下,生成荷包编译的状态编码,使得合包编译状态的相关异常信息能够用于反馈给相应的开发人员和管理人员,便于开发人员和管理人员对相关代码进行及时修正,提高代码编译效率。具体的,在合包编译过程中,软件开发项目的各个模块的代码可能会产生异常,从而导致合包编译失败,而为了准确地将异常信息进行反馈,可以预先为各种异常信息配置标准状态编码,本实施例的异常信息可以基于异常状态和异常业务代码来表示,异常状态可以包括如代码语法异常、性能/大小异常和安全异常等等,而异常业务代码是指产生异常状态的业务模块代码,因此,可以将标准状态编码划分为两个字段,分别对应于异常状态和异常业务代码,这样,在合包编译过程中产生异常时,可以获取该异常状态,并确定异常业务代码,然后从预先配置好的标准状态编码的字段集合中,获取与异常状态相对应的第一编码字段以及与异常业务代码相对应的第二编码字段,通过将该第一编码字段和第二编码字段进行组合,得到合包编译的状态编码,为了便于对状态编码进行分析,对编码字段进行组合的方式可以采用将两个编码字段串接的形式,例如,第一编码字段为3003、第二编码字段为00003002,则状态编码可以是300300003002或000030023003。

进一步的,参考图4,图4为一个实施例中标准状态编码的示意图,标准状态编码可以进一步划分为三个编码字段,第一个编码字段对应于供应商(即开发终端)、第二个编码字段对应于业务(即开发终端的业务分类)和第三个编码字段对应于状态值(即异常状态),每个字段需要预留相应足够的位数,以区分不同的状态编码。其中,每一个供应商编码字段对应一家实体供应商,为一对一关系;每家供应商可以开发多个业务模块代码,即“供应商+业务”的组合编码字段与一个业务模块代码为一对一关系;对于状态值的编码字段,其中0000为正常通过状态,其他非0000都是异常状态,其异常状态与实际项目定义为准,以微信小程序项目为例,定义如下:

i.1xxx为代码语法异常,如1001代码非正常闭合;

ii.2xxx为性能/包大小异常;

iii.3xxx为安全异常。

举例来说:如果合包编译得到的状态编码为000030023003,则状态编码表示在合包编译过程中,00003供应商的002业务有安全异常,其中“供应商+业务”组合编码能快速定位到业务模块代码,状态值3003定位到此业务模块代码有涉露token的安全风险;如果合包编译得到的状态编码为000050022001,则状态编码表示在合包编译过程中,00005供应商的002业务有性能/包大小异常,其中“供应商+业务”组合编码能快速定位到业务模块代码,状态值2001定位到此业务模块代码有存在大量的setdata操作,有性能风险。

在上述实施例中,合包编译的编译状态可以包括合包编译成功和合包编译失败,若在合包编译的过程当中,软件代码没有发生异常,则会返回报告文档,该报告文档罗列出对应有多少个代码仓库、代码分支、最后更新代码时间和更新人等信息,如果软件代码发生异常,则返回的报告文档还携带有合包编译得到的状态编码,用于开发人员和管理人员及时对相关代码进行修正,提高代码编译效果。

结合图5对一实施例的合包编译过程进行具体说明,图5为一个实施例中合包编译的流程图,本实施例的合包编译过程由项目管理终端执行,具体步骤可以包括:分析项目配置文件config.json,在用户目录创建临时目录,以配置文件项目名命名,将公共模块代码库、主模块代码库和各业务模块代码库按配置分支下载到临时目录的packages目录下,对每个代码仓库的代码进行语法检测、冗余文件检测和安全检测等状态检测,并将检测结果缓存下来,遍历每个业务模块代码文件,按规范将路径替换为相对可访问路径,将处理过后的packages目录代码复制到dist目录,执行各类型的编译命令,如微信小程序,启动小程序工具,并上传到小程序服务器,接收小程序服务器返回的二维码,开发人员通过手机扫描二维码,可以下载或直接启动代码包,如小程序,可直接在手机上启动并预览,生成报告文档。

为了更清晰阐明本发明实施例提供的软件开发项目的代码编译方法与传统的代码编译方法的区别,参考图6和图7,其中,图6为传统代码编译方法的原理图,图7为一个实施例中代码编译方法的原理图。

如图6所示,传统的代码编译方法,多家供应商共同开发同一个软件,所有供应商共同维护同一个代码仓库,这样大家互相能查看对方代码,造成代码安全风险,而且代码冲突时沟通成本高,效率低下,而如图7所示,本发明实施例提供的软件开发项目的代码编译方法,代码仓库实行严格权限管理,主模块代码仓库由项目管理人员进行管理,各业务模块代码仓库只有具有访问权限的供应商有权限进行管理,在开发阶段,供应商独立运行测试,各业务模块代码相互之间无耦合,在合包编译阶段,可以统一在线上自动合包编译,检测各代码状态,如出现问题,返回对应的标准状态编码,克服了多家供应该商共同开发同一个软件时代码权限、安全管理、状态检测等问题,提高了代码编译的效率。

在一个实施例中,还提供了一种软件开发项目的代码编译方法,参考图8,图8为另一个实施例中软件开发项目的代码编译方法的流程示意图,该方法可以基于如图1所示的开发终端110实现,该软件开发项目的代码编译方法可以包括以下步骤:

步骤s401,将终端标识发送至服务器,用于服务器根据终端标识获取相应的代码仓库访问权限,并在多个业务模块代码仓库中确定与代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,多个业务模块代码仓库基于开发终端的终端标识进行权限隔离;

步骤s402,接收服务器发送的业务模块代码;

步骤s403,对业务模块代码进行编译处理。

在上述实施例,对软件开发项目的代码进行编译之前,开发终端110先将其终端标识发送给服务器200,服务器200可以通过互联网接收开发终端110发送的终端标识,由于开发终端110的数量一般是多个,各个开发终端110共同来开发一个软件开发项目,开发终端110的终端标识,主要用于对各个开发终端110进行区分,便于后续步骤将相应的代码反馈至对应的开发终端,避免代码访问混乱。然后,服务器200根据开发终端110发送的终端标识,获取该开发终端110的代码仓库访问权限,其中,服务器200可以预先为软件开发项目的各个开发终端设置代码仓库访问权限,使得某个开发终端只能具有特定的代码仓库访问权限,该服务器200可以预先建立终端标识与代码仓库访问权限的对应关系,当服务器200接收到开发终端110发送的终端标识后,即可根据该对应关系获取该开发终端110的代码仓库访问权限;服务器200可以对软件开发项目的多个业务模块代码仓库进行访问,还能够从各个业务模块代码仓库当中提取相应的业务模块代码,而开发终端110则可以通过服务器200对这些业务模块代码仓库进行访问并获取业务模块代码。而为了使得各个开发终端110在对代码仓库的代码进行访问时不会干扰到其他开发终端110的软件代码,服务器200可以基于各个开发终端110的终端标识预先为各个业务模块代码仓库进行权限隔离处理,权限隔离是指各个开发终端110只能够对其访问权限范围之内的代码仓库进行访问,而不能够对其访问权限范围之外的代码仓库进行访问,而服务器200在获取开发终端110的代码仓库访问权限后,在多个业务代码仓库中确定与该代码仓库访问权限相匹配的业务模块代码仓库,然后从该业务模块代码仓库中获取业务模块代码;服务器200在获取业务模块代码以后,将该业务模块代码反馈给相应的开发终端110,使得具有代码访问权限的开发终端110接收到该业务模块代码以后,可以对该业务模块代码进行编译测试。

在一个实施例中,对业务模块代码进行编译处理的步骤可以包括:

接收服务器发送的公共模块代码;其中,公共模块代码为服务器从公共模块代码仓库中获取的;对公共模块代码和业务模块代码进行编译处理。

其中,一个软件开发项目一般会被划分为多个业务模块和公共模块,各个业务模块的代码即为业务模块代码,分别存储在相应的业务模块代码仓库当中,由相应的开发终端110通过服务器200进行维护,而在开发终端110可以基于其维护的业务模块代码结合公共模块对应的公共模块代码进行编译,本实施例主要是服务器200还可以对软件开发项目的公共模块代码仓库进行访问,获取公共模块代码,并将该公共模块代码和业务模块代码一起发送至开发终端110进行编译,使得开发终端110可以直接调用公共模块里的sdk、组件和页面代码等,提高代码编译的效率。进一步的,公共模块代码仓库还可以有更新需求,服务器200可以将更新的公共模块代码更新到开发终端110,具体的,开发终端110可以向服务器200发送公共模块代码更新请求,服务器200可以根据该公共模块代码更新请求获取更新的公共模块代码发送给开发终端110。

上述软件开发项目的代码编译方法,开发终端将其终端标识发送至服务器,服务器接收终端标识,并根据该终端标识获取开发终端的代码仓库访问权限,然后在多个业务模块代码仓库中确定与该代码仓库访问权限相匹配的业务模块代码仓库,并从该业务模块代码仓库中获取业务模块代码,该多个业务模块代码仓库基于开发终端的终端标识进行权限隔离,然后服务器将该业务模块代码发送至开发终端,使得开发终端对该业务模块代码进行编译处理。该方案能够基于各个开发终端的终端标识将多个业务模块代码仓库进行权限隔离,使得开发终端仅能访问具有相应访问权限的业务模块代码仓库,避免对其他开发终端的业务模块代码造成影响,各个开发终端能够独立对相应的业务模块代码进行编译测试,提高了代码编译效率。

在一个实施例中,提供了一种软件开发项目的代码编译装置,参考图9,图9为一个实施例中软件开发项目的代码编译装置的结构框图,该软件开发项目的代码编译装置可以包括:

标识接收模块101,用于接收开发终端发送的终端标识;

权限获取模块102,用于根据终端标识获取开发终端的代码仓库访问权限;

代码获取模块103,用于在多个业务模块代码仓库中确定与代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,多个业务模块代码仓库基于开发终端的终端标识进行权限隔离;

第一编译模块104,用于将业务模块代码发送至开发终端,用于开发终端对业务模块代码进行编译处理。

在一个实施例中,第一编译模块104进一步用于:从公共模块代码仓库中获取公共模块代码;将公共模块代码和所述业务模块代码发送至开发终端,用于开发终端对公共模块代码和业务模块代码进行编译处理

在一个实施例中,代码获取模块103进一步用于:获取软件开发项目的规范配置文件;从规范配置文件中提取地址列表;地址列表记录多个代码仓库的访问地址,分别对应于多个业务模块代码仓库;基于地址列表中与业务模块代码仓库相对应的访问地址,获取业务模块代码。

在一个实施例中,还可以包括:

第一合包编译模块,用于接收项目管理终端发送的合包编译请求;根据软件开发项目的规范配置文件,确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库;响应于合包编译请求,获取主模块代码仓库中的主模块代码、多个业务模块代码仓库中的业务模块代码和公共模块代码仓库中的公共模块代码,发送至项目管理终端,用于项目管理终端对主模块代码、多个业务模块代码和公共模块代码进行合包编译。

在一个实施例中,还可以包括:

第二合包编译模块,用于接收项目管理终端发送的合包编译指令;根据软件开发项目的规范配置文件,确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库;获取主模块代码仓库中的主模块代码、多个业务模块代码仓库中的业务模块代码和公共模块代码仓库中的公共模块代码;响应于合包编译指令,对主模块代码、多个业务模块代码和公共模块代码进行合包编译。

在一个实施例中,还可以包括:

状态获取单元,用于获取合包编译状态;

第一状态处理单元,用于若合包编译状态为合包编译成功,则获取完整软件包的二维码,发送至开发终端和/或项目管理终端;其中,完整软件包为对主模块代码、多个业务模块代码和公共模块代码进行合包编译得到的软件包。

在一个实施例中,还可以包括:

第二状态处理单元,用于若合包编译状态为合包编译失败,则获取合包编译过程中产生的异常状态并确定异常业务代码;异常业务代码为产生异常状态的业务模块代码;从预先配置的标准状态编码字段集合中,获取与异常状态相对应的第一编码字段以及与异常业务代码相对应的第二编码字段;将第一编码字段和第二编码字段进行组合,得到合包编译的状态编码。

在一个实施例中,还提供了一种软件开发项目的代码编译装置,参考图10,图10为另一个实施例中软件开发项目的代码编译装置的结构框图,该软件开发项目的代码编译装置可以包括:

标识发送模块401,用于将终端标识发送至服务器,用于服务器根据终端标识获取相应的代码仓库访问权限,并在多个业务模块代码仓库中确定与代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,多个业务模块代码仓库基于开发终端的终端标识进行权限隔离;

代码接收模块402,用于接收服务器发送的业务模块代码;

第二编译模块403,用于对业务模块代码进行编译处理。

在一个实施例中,第二编译模块403,进一步用于接收服务器发送的公共模块代码;公共模块代码为服务器从公共模块代码仓库中获取的;对公共模块代码和业务模块代码进行编译处理。

本发明的软件开发项目的代码编译装置与本发明的软件开发项目的代码编译方法一一对应,关于软件开发项目的代码编译装置的具体限定可以参见上文中对于软件开发项目的代码编译方法的限定,在上述软件开发项目的代码编译方法的实施例阐述的技术特征及其有益效果均适用于软件开发项目的代码编译装置的实施例中,在此不再赘述。上述软件开发项目的代码编译装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示,图11为一个实施例中计算机设备的内部结构图。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库可以用于存储多个业务模块代码仓库的业务模块代码等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件开发项目的代码编译方法。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示,图12为另一个实施例中计算机设备的内部结构图。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件开发项目的代码编译方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图11和图12中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上任一项实施例所述的软件开发项目的代码编译方法。

在一个实施例中,提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

接收开发终端发送的终端标识;根据终端标识获取开发终端的代码仓库访问权限;在多个业务模块代码仓库中确定与代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,多个业务模块代码仓库基于开发终端的终端标识进行权限隔离;将业务模块代码发送至开发终端,用于开发终端对业务模块代码进行编译处理。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

从公共模块代码仓库中获取公共模块代码;将公共模块代码和业务模块代码发送至开发终端,用于开发终端对公共模块代码和业务模块代码进行编译处理。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取软件开发项目的规范配置文件;从规范配置文件中提取地址列表;地址列表记录多个代码仓库的访问地址,分别对应于多个业务模块代码仓库;基于地址列表中与业务模块代码仓库相对应的访问地址,获取业务模块代码。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

接收项目管理终端发送的合包编译请求;根据软件开发项目的规范配置文件,确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库;响应于合包编译请求,获取主模块代码仓库中的主模块代码、多个业务模块代码仓库中的业务模块代码和公共模块代码仓库中的公共模块代码,发送至项目管理终端,用于项目管理终端对主模块代码、多个业务模块代码和公共模块代码进行合包编译。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

接收项目管理终端发送的合包编译指令;根据软件开发项目的规范配置文件,确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库;获取主模块代码仓库中的主模块代码、多个业务模块代码仓库中的业务模块代码和公共模块代码仓库中的公共模块代码;响应于合包编译指令,对主模块代码、多个业务模块代码和公共模块代码进行合包编译。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取合包编译状态;若合包编译状态为合包编译成功,则获取完整软件包的二维码,发送至开发终端和/或项目管理终端;其中,完整软件包为对主模块代码、多个业务模块代码和公共模块代码进行合包编译得到的软件包。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

若合包编译状态为合包编译失败,则获取合包编译过程中产生的异常状态并确定异常业务代码;异常业务代码为产生异常状态的业务模块代码;从预先配置的标准状态编码字段集合中,获取与异常状态相对应的第一编码字段以及与异常业务代码相对应的第二编码字段;将第一编码字段和第二编码字段进行组合,得到合包编译的状态编码。

在一个实施例中,提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

将终端标识发送至服务器,用于服务器根据终端标识获取相应的代码仓库访问权限,并在多个业务模块代码仓库中确定与代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,多个业务模块代码仓库基于开发终端的终端标识进行权限隔离;接收服务器发送的业务模块代码;对业务模块代码进行编译处理。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

接收服务器发送的公共模块代码;公共模块代码为服务器从公共模块代码仓库中获取的;对公共模块代码和业务模块代码进行编译处理。

上述计算机设备,通过所述处理器上运行的计算机程序,能够基于各个开发终端的终端标识将多个业务模块代码仓库进行权限隔离,使得开发终端仅能访问具有相应访问权限的业务模块代码仓库,避免对其他开发终端的业务模块代码造成影响,各个开发终端能够独立对相应的业务模块代码进行编译测试,提高了代码编译效率。

本领域普通技术人员可以理解实现如上任一项实施例所述的软件开发项目的代码编译方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

据此,在一个实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上任一项实施例所述的软件开发项目的代码编译方法。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

接收开发终端发送的终端标识;根据终端标识获取开发终端的代码仓库访问权限;在多个业务模块代码仓库中确定与代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,多个业务模块代码仓库基于开发终端的终端标识进行权限隔离;将业务模块代码发送至开发终端,用于开发终端对业务模块代码进行编译处理。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

从公共模块代码仓库中获取公共模块代码;将公共模块代码和业务模块代码发送至开发终端,用于开发终端对公共模块代码和业务模块代码进行编译处理。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取软件开发项目的规范配置文件;从规范配置文件中提取地址列表;地址列表记录多个代码仓库的访问地址,分别对应于多个业务模块代码仓库;基于地址列表中与业务模块代码仓库相对应的访问地址,获取业务模块代码。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

接收项目管理终端发送的合包编译请求;根据软件开发项目的规范配置文件,确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库;响应于合包编译请求,获取主模块代码仓库中的主模块代码、多个业务模块代码仓库中的业务模块代码和公共模块代码仓库中的公共模块代码,发送至项目管理终端,用于项目管理终端对主模块代码、多个业务模块代码和公共模块代码进行合包编译。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

接收项目管理终端发送的合包编译指令;根据软件开发项目的规范配置文件,确定软件开发项目划分的主模块代码仓库、多个业务模块代码仓库和公共模块代码仓库;获取主模块代码仓库中的主模块代码、多个业务模块代码仓库中的业务模块代码和公共模块代码仓库中的公共模块代码;响应于合包编译指令,对主模块代码、多个业务模块代码和公共模块代码进行合包编译。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取合包编译状态;若合包编译状态为合包编译成功,则获取完整软件包的二维码,发送至开发终端和/或项目管理终端;其中,完整软件包为对主模块代码、多个业务模块代码和公共模块代码进行合包编译得到的软件包。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若合包编译状态为合包编译失败,则获取合包编译过程中产生的异常状态并确定异常业务代码;异常业务代码为产生异常状态的业务模块代码;从预先配置的标准状态编码字段集合中,获取与异常状态相对应的第一编码字段以及与异常业务代码相对应的第二编码字段;将第一编码字段和第二编码字段进行组合,得到合包编译的状态编码。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

将终端标识发送至服务器,用于服务器根据终端标识获取相应的代码仓库访问权限,并在多个业务模块代码仓库中确定与代码仓库访问权限相匹配的业务模块代码仓库,从该业务模块代码仓库中获取业务模块代码;其中,多个业务模块代码仓库基于开发终端的终端标识进行权限隔离;接收服务器发送的业务模块代码;对业务模块代码进行编译处理。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

接收服务器发送的公共模块代码;公共模块代码为服务器从公共模块代码仓库中获取的;对公共模块代码和业务模块代码进行编译处理。

上述计算机可读存储介质,通过其存储的计算机程序,能够基于各个开发终端的终端标识将多个业务模块代码仓库进行权限隔离,使得开发终端仅能访问具有相应访问权限的业务模块代码仓库,避免对其他开发终端的业务模块代码造成影响,各个开发终端能够独立对相应的业务模块代码进行编译测试,提高了代码编译效率。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

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

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