CN110704036B - 构建脚本的方法、装置和存储介质 - Google Patents
构建脚本的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN110704036B CN110704036B CN201810752846.9A CN201810752846A CN110704036B CN 110704036 B CN110704036 B CN 110704036B CN 201810752846 A CN201810752846 A CN 201810752846A CN 110704036 B CN110704036 B CN 110704036B
- Authority
- CN
- China
- Prior art keywords
- constructor
- script
- target item
- builder
- constructing
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种构建脚本的方法、装置和存储介质。其中,该方法包括:响应于对目标项目构建脚本的指令,获取目标项目中标记的构建器的标识;基于标识,外部调用构建器;利用外部调用的构建器,对目标项目构建脚本。本发明实施例可以将构建器与前端项相分离,减少了目标项目的存储压力,尤其在同时开发多个目标项目时,可以大幅度减少目标项目的存储空间。另外,本发明实施例可以提高构建脚本的效率。
Description
技术领域
本发明涉及网络技术领域,尤其涉及一种构建脚本的方法、装置和存储介质。
背景技术
随着网络技术的快速发展,零售业已经发生了巨大的变化。网络交易已经成为潮流。网络交易平台中的前端业务使用前端开发套件体系开发对应的业务。该前端开发套件体系可以包括脚手架、构建脚本、检查机制和发布机制等。不同目标业务(如前端业务)可以由其对应的目标项目(如前端项目)来实现。其中,前端项目是用于开发前端业务的源代码集合。前端项目可以包括用于开发原生应用(App)的weex项目和react native项目等。各个前端项目需要构建脚本之后才可以应用于前端业务。
传统的对前端项目构建脚本的方案可以为:首先对各个前端项目分别建立与之对应的一个构建器,然后将建立好的各个构建器存储在各自对应的前端项目中。当收到对前端项目构建脚本的指令时,调用前端项目中存储的构建器对该前端项目构建脚本。
申请人经研究发现:上述传统的方案,需要对每个目标项目均建立一个构建器,将建立好的各个构建器存储在其对应的目标项目中。如此,目标项目中既包括构建脚本的执行主体(构建器),又包括构建脚本的执行对象(目标项目),主体和对象混杂在一起,这不仅占用了大量的存储空间,而且增加了信息调用的复杂性,进而使得构建脚本的效率较低。通常大量的目标项目会同时开发,当目标项目的数量越多时,上述传统的方案的弊端越大。
如何减少存储空间,提高构建脚本的效率,成为亟待解决的技术问题。
发明内容
鉴于此,为了至少解决背景技术中的一个问题,本发明实施例提供了一种构建脚本的方法、存储介质和脚本构建器。
第一方面,提供了一种构建脚本的方法。该方法包括以下步骤:
响应于对目标项目构建脚本的指令,获取目标项目中标记的构建器的标识;
基于标识,外部调用构建器;
利用外部调用的构建器,对目标项目构建脚本。
第二方面,提供了一种构建脚本的方法。该方法包括以下步骤:
云端服务器接收来自本地服务器的对目标项目构建脚本的本地指令;
响应于本地指令,获取目标项目中的源代码以及目标项目中标记的构建器的标识;
基于标识,调用云端服务器中的构建器;
利用构建器,对目标项目中的源代码构建脚本,得到构建结果;
将构建结果反馈至本地服务器。
第三方面,提供了一种构建脚本的装置。该装置包括:
标识获取单元,用于响应于对目标项目构建脚本的指令,获取目标项目中标记的构建器的标识;
构建器调用单元,用于基于标识,外部调用构建器;
脚本构建单元,用于由外部调用的构建器,对目标项目构建脚本。
第四方面,提供了一种构建脚本的装置。该装置包括:
指令接收单元,用于在云端接收来自本地的对目标项目构建脚本的本地指令;
信息获取单元,用于响应于本地指令,获取目标项目中的源代码以及目标项目中标记的构建器的标识;
构建器调用单元,用于基于标识,调用云端的构建器;
脚本构建单元,用于由构建器,对目标项目中的源代码构建脚本,得到构建结果;
结果反馈单元,用于将构建结果反馈至本地服务器。
第五方面,提供了一种构建脚本的装置。该装置包括:
存储器,用于存放程序;
处理器,用于执行存储器存储的程序,程序使得处理器执行上述各个方面对应的方法。
第六方面,提供了一种计算机可读存储介质。该存储介质存储有指令,
当指令在计算机上运行时,使得计算机执行上述任意一项的方法。
第七方面,提供了一种包含指令的计算机程序产品。当该产品在计算机上运行时,使得计算机执行上述各方面所述的方法。
第八方面,提供了一种计算机程序。当该计算机程序在计算机上运行时,使得计算机执行上述各方面所述的方法。
由此,上述发明实施例可以将目标项目与其对应的构建器分开存储,仅在目标项目中标记构建器的标识。待需要构建脚本时,可以根据标识外部调用构建器,对目标项目进行构建脚本。
一方面,上述发明实施例可以通过在多个目标项目中标记同一个构建器的标识,让多个目标项目共用同一个构建器,不仅减少了建立构建器的数量,节约了计算开销,提升了对目标项目构建脚本的效率,而且可以便于统一对构建器的进行维护和升级等。
另一方面,上述发明实施例可以通过统一对构建器的统一维护和升级等操作,从而提升构建器对目标项目构建脚本的效率,减少构建器的维护和升级等操作对目标项目的运行造成的干扰影响。
又一方面,上述发明实施例可以将构建器与前端项相分离,减少了目标项目的存储压力,尤其在同时开发多个目标项目时,可以大幅度减少目标项目的存储空间。
又一方面,上述发明实施例可以通过将构建器与目标项目相分离,减少了目标项目中的信息量,避免了信息混杂导致的信息调用混乱的风险,进一步提高了对目标项目构建脚本的效率。
又一方面,上面发明实施例可以将构建器与目标项目相分离,可以避免在目标项目中修改构建器的非法操作,提高了构建器的可靠性,进而提高了构建脚本的精确性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例的构建脚本的系统架构示意图;
图2是本发明一实施例的构建脚本的方法示意图;
图3是本发明另一实施例的构建脚本的方法示意图;
图4是本发明一实施例的建立构建器的示意图;
图5是本发明一实施例的在本地构建脚本的方法的流程示意图;
图6是本发明一实施例的在云端构建脚本的方法的流程示意图;
图7是本发明一实施例的构建脚本的装置的结构图;
图8是本发明另一实施例的构建脚本的装置的结构图;
图9是本发明一实施例的构建脚本的装置的框架结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1是本发明一实施例的构建脚本的系统架构示意图。
如图1所示,该系统可以包括:本地服务器100、本地服务器200、云端服务器300和网络400。其中,本地服务器100可以包括:用于存储目标项目A的存储器101和用于存储目标项目B的存储器102。本地服务器200可以包括:用于存储目标项目C的存储器201和用于存储目标项目D的存储器202。云端服务器300可以包括:用于存储构建器I的存储器301和用于存储构建器II的存储器302。
目标项目A和目标项目B均可以由构建器I来构建脚本。目标项目C和目标项目D均可以由构建器II来构建脚本。构建器I和构建器II也可以存储在本地的本地服务器100和本地服务器200中,但需要与目标项目分离存储。
本地服务器100、本地服务器200和云端服务器300可以是个人电脑、智能手机、服务器等具有信息收发、信息运算处理能力的电子设备。
网络400可以是用以在各种电子设备之间提供通信链路的介质。具体的,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。
应该理解,图1中的设备的数目仅仅是示意性的。根据实现需要,该系统可以具有任意数目的本地服务器100、本地服务器200和云端服务器300和网络等。
本地服务器100、本地服务器200和云端服务器300中的存储器的数量可以根据实际需要进行灵活变化,相应的目标项目和构建器的数量也会随之变化,此方面内容不做限制。
下面各个实施例均可以应用于在此系统架构,相同和相似的内容可以相互参考和引用,不再赘述。
图2是本发明一实施例的构建脚本的方法示意图。
如图2所示,该方法可以包括以下步骤:S210,响应于对目标项目构建脚本的指令,获取目标项目中标记的构建器的标识;S220,基于标识,外部调用构建器;S230,利用外部调用的构建器,对目标项目构建脚本。
本实施例可以应用于本地。该方法的操作主体例如可以是图1中的本地服务器100和本地服务器200等。构建器可以对一个或者多个目标项目构建脚本。构建器可以与目标项目分开存储,构建器可以存储在目标项目的外部(如云端服务器300等任何可以调用构建起的存储空间中),构建器的标识(如名称)可以存储在目标项目中。
在步骤S210中,目标项目可以是前端项目和后端项目等。例如,前端项目可以运行于应用层。前端项目(主要针对研发人员)是用于开发前端业务(主要针对消费者)的源代码的集合,其可以是用于开发前端业务的源代码集合。前端业务可以包括但不限于:个人计算机(personal computer,PC)浏览器页面业务、手机浏览器页面业务、嵌入于应用(App)的网页视图(WebView)页面业务。前端项目可以是用于开发原生App的weex项目和react native项目等。后端项目可以针对研发人员在后台处理的项目,该项目不展示给消费者。
在一些实施例中,目标项目中标记的构建器的标识可以预先标记好。预先在目标项目中标记构建器的标识的实现方式可以包括以下步骤:
S11,获取目标项目的源代码。
源代码可以是程序员编写的原始程序的代码。因为该代码未经编译,所以计算机无法识别该代码。
S12,根据源代码,确定构建脚本的构建类型。
构建类型可以包括但不限于以下类型:webpack类型、gulp类型、grunt类型、rollup.js类型、parcel.js类型、shell script类型等。
S13,基于构建类型,建立对应的构建器。
构建器可以有专门的开发者维护,构建器开发者负责使用专门的开发套件开发、调试构建器,并基于云构建平台发布、安装构建器。
该步骤(S13)可以包括以下子步骤:
S131,基于构建类型,开发构建器脚本。
S132,根据预设形式,封装构建器脚本。
构建器可以是以npm package形式封装,还可以shell脚本形式封装,此方面内容不做限制。
S133,在构建平台上,将封装的构建器脚本进行注册。
注册是可以是指初次使用时的在平台上注册构建器的操作。该操作可以首先输入注册信息(如构建器的名称、时间、版本等),然后对该注册执行对应的审批流程。具体审批流程可以根据应用场景灵活设置,此方面内容不做限制。
S134,安装注册的构建器脚本,得到构建器。
在云构建平台上,构建器的版本可以包括灰度版本和正式版本。安装可以包括第一次安装、升级安装和灰度版本安装等。目标项目或者构建器开发者可以在平台上选择使用灰度版本或者正式版本,利用选择的版本对构建器进行灰度测试。
S14,将构建器存储在目标项目的外部(如云端服务器中),并在目标项目中标记构建器的标识。
在本实施例中,基于构建类型,可以为一个或者多个目标项目建立同一个构建器。多个目标项目可以对应同一个构建器,一个目标项目也可以对应多个构建器。可以根据灰度或者正式版本下载不同的构建器,构建器在本地可以有一个专门的目录单独存储,以方便后续检查更新等。
在步骤S210中,构建器的标识可以是构建器的名字,如构建器A,也可以是构建器的身份标识号(ID)号。标识的具体变现形式可以是文字、字符、数字等组合而成,此方面内容不做限制。
在步骤S220中,根据标识,可以先查找标识对应的构建器,然后调用查找到的构建器。该构建器可以与目标项目匹配。
在步骤S230中,利用调用的构建器,对目标项目进行构建脚本的步骤可以包括:利用调用的构建器,获取目标项目的源代码;将源代码编译成为用于执行目标项目的代码。
在一些实施例中,构建脚本的方法可以包括:响应于维护构建器的指令,对构建器进行维护,以利用维护后的构建器对相应的一个或者多个目标项目构建脚本。由此,本实施例可以将目标项目与构建器相分离,让多个目标项目共用一个构建器,不仅可以减少建立构建器的开销,还可以对构建器进行单独维护,且维护过程不会影响目标项目的运行。
在一些实施例中,构建脚本的方法可以包括:响应于变更目标项目对应的构建器的指令,在目标项目中变更构建器的标识。由此,本实施例可以通过变更标识,来变更构建器,操作非常简单、方便,大幅度节约了计算开销。
图3是本发明一实施例的构建脚本的方法示意图。
本实施例可以应用于云端。该方法的操作主体可以是图1中的云端服务器300。
如图3所示,该方法可以包括以下步骤:S310,云端服务器接收来自本地服务器的对目标项目构建脚本的本地指令;S320,响应于本地指令,获取目标项目中的源代码以及目标项目中标记的构建器的标识;S330,基于标识,调用云端服务器中的构建器;S340,利用构建器,对目标项目中的源代码构建脚本,得到构建结果;S350,将构建结果反馈至本地服务器。
在本实施例中,构建器可以对应一个或者多个目标项目,一个目标项目也可以对应一个或者多个构建器。构建器与目标项目分开存储。目标项目可以存储在本地(如本地服务器),构建器可以存储在云端(如云端服务器)。
在一些实施例中,构建器可以下载到本地(如本地服务器100和本地服务器200),用于本地构建脚本;目标项目也可以上传到服务器(如云端服务器300),使用服务器中的构建器统一构建脚本,此方面内容不做限制。
在一些实施例中,获取目标项目中的源代码以及目标项目中标记的构建器的标识之前,还可以包括:获取目标项目的源代码;根据源代码,确定构建脚本的构建类型;基于构建类型,构建对应的构建器;将构建器存储在目标项目的外部(可以调用构建器且不在目标项目内部的存储空间),并在目标项目中标记构建器的标识。
在一些实施例中,建立构建器的实现方式可以包括:基于构建类型,开发构建器脚本;根据预设形式,封装构建器脚本;在构建平台上,将封装的构建器脚本进行注册;安装注册的构建器脚本,得到构建器。
可以理解,构建器可以在本地建立,然后将建立的构建器上传至云端,也可以直接在云端建立构建器,该部分内容不做限制。
在一些实施例中,基于构建类型,构建对应的构建器的实现方式可以包括:基于构建类型,为一个或者多个目标项目构建同一个构建器。
在一些实施例中,利用调用的构建器,对目标项目进行构建脚本的实现方式可以包括:利用调用的构建器,获取目标项目的源代码;将源代码编译成为用于执行目标项目的代码。
在一些实施例中,还可以包括:响应于维护构建器的指令,对构建器进行维护,以利用维护后的构建器,针对构建器相应的一个或者多个目标项目构建脚本。
在一些实施例中,还可以包括:响应于变更目标项目对应的构建器的指令,在目标项目中变更构建器的标识。
云端构建脚本的其它细节内容可以参考上述的本地构建脚本的内容,此方面内容不再赘述。
图4是本发明一实施例的建立构建器的示意图。
如图4所示,首先,开发人员(如构建器的维护人员)可以根据目标项目,在本地开发得到构建器A。
然后,可以在目标项目的参库中指定注册到云端服务器300里的构建器的名称(如构建器A)。
接着,可以将构建器A注册并安装至云端服务器300。
按上述方法,还可以在云端服务器300建立构建器B和构建器C等。然后,当收到对目标项目构建脚本的指令时,调用云端服务器300中的构建器A,并利用构建器A对目标项目构建脚本。
在本实施例中,开发构建器可以在云端进行,也可以在本地进行。构建脚本可以在云端进行,也可以在本地进行。
在上述实施例中,可以自动对构建器的脚本的缺陷(bug)进行修复和功能升级。按照构建器安装和升级机制,如果是在本地构建脚本,目标项目在执行构建脚本之前,可以自动从云端检查当前构建器是否有更新。如果云端构建器有更新,则在自动安装构建器的更新后,再利用更新的构建器构建脚本。如此设计,可以解决构建脚本的更新问题。
在上述实施例中,由于构建器没有存储在目标项目中,所以构建器可以单独维护。由此,可以避免构建器的脚本在目标项目中被非法修改的问题。提高了构建器的可靠性,进而提高了构建脚本的精确性。
基于构建器和目标项目分离存储的机制,可以在云端服务器中各自存储一份目标项目和构建器的灰度表。当目标项目使用了灰度功能时,可以自动下载更新的灰度版本构建器;当项目不需使用灰度功能时,只需要在云端服务器中取消标记的构建器的名称即可,可以大幅度简单灰度测试成本。
当需要在云端构建脚本时,构建器可以是预先安装在云端服务器上,每次构建器构建脚本不需要再安装构建器,可以直接根据构建器的名称调用构建器,减少了建立构建器的操作,提高了构建脚本的效率。
当需要在本地构建脚本时,由于构建器是单独存储,当多个目标项目使用同一构建器时,只需要存储一个共用的构建器,大幅度节省了本地存储空间。
图5是本发明一实施例的在本地构建脚本的方法的流程示意图。
如图5所示,该方法可以包括以下步骤:
S510,初始化开始。
S520,从目标项目中获取构建器的标识(如构建器的名称构建器A)。
S530,判断本地是否安装了构建器A。
S540,当本地是安装了构建器A,利用本地安装的构建器A对目标项目进行构建。
S550,当本地未安装构建器A,则从云端服务器下载构建器A,并跳转至步骤S540,利用下载的构建器A对目标项目进行构建。
S560,结束。
图6是本发明一实施例的在云端构建脚本的方法的流程示意图。
如图6所示,该方法可以包括以下步骤:
S610,初始化开始。
S620,获取本地前端项目的源代码。
S630,根据源代码获取构建类型。
S640,根据构建类型建立相应的构建器(如构建器A)。
S650,将构建器存储在云端,将构建器的标识标记在前端项目中。
S660,根据标识调用对应的构建器A。
S670,利用构建器A对前端项目构建脚本。
S680,结束。
上述各个方法的执行主体可以是构建脚本的装置、设备或者系统等具有处理能力的处理设备。
需要说明的是,在不冲突的情况下,本领域的技术人员可以按实际需要将上述的操作步骤的顺序进行灵活调整,或者将上述步骤进行灵活组合等操作。为了简明,不再赘述各种实现方式。另外,各实施例的内容可以相互参考引用。
图7是本发明一实施例的构建脚本的装置的结构图。
如图7所示,该装置可以包括:标识获取单元710、构建器调用单元720和脚本构建单元730。其中,标识获取单元710可以用于响应于对目标项目构建脚本的指令,获取目标项目中标记的构建器的标识;构建器调用单元720可以用于基于标识,外部调用构建器;脚本构建单元730可以用于由外部调用的构建器,对目标项目构建脚本。在一些实施例中,构建脚本的装置还可以包括:构建器建立单元。
构建器建立单元可以包括:代码获取模块、类型确定模块、构建器建立模块、标识标记模块。
其中,代码获取模块可以用于获取目标项目的源代码;类型确定模块可以根据源代码,确定构建脚本的构建类型;构建器建立模块可以基于构建类型,构建对应的构建器;标识标记模块可以将构建器存储在目标项目的云端服务器,并在目标项目中标记构建器的标识。
构建器建立模块还可以基于构建类型,为一个或者多个目标项目构建同一个构建器。
在一些实施例中,脚本构建单元730可以用于利用调用的构建器,获取目标项目的源代码;将源代码编译成为用于执行目标项目的代码。
图8是本发明另一实施例的构建脚本的装置的结构图。
如图8所示,该装置可以包括:指令接收单元810、标识获取单元710、构建器调用单元720、脚本构建单元730和结果反馈单元820。其中,指令接收单元810可以用于由云端服务器接收来自本地服务器的对目标项目构建脚本的本地指令;标识获取单元710可以用于响应于本地指令,获取目标项目中的源代码以及目标项目中标记的构建器的标识;构建器调用单元720可以用于基于标识,调用云端服务器的构建器;脚本构建单元730可以用于由构建器,对目标项目中的源代码构建脚本,得到构建结果;结果反馈单元850可以用于将构建结果反馈至本地服务器。
本实施例与图7所示实施例的区别主要在于,本实施例可以应用于云端,本实施例增加了指令接收单元810和结果反馈单元820。
需要说明的是,上述各实施例的装置可作为上述各实施例的用于各实施例的方法中的执行主体,可以实现各个方法中的相应流程,实现相同的技术效果,为了简洁,此方面内容不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,当其在计算机上运行时,使得计算机执行上述各个实施例中描述的方法。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等。
图9是本发明一实施例的构建脚本的装置的框架结构图。
如图9所示,该框架可以包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分708加载到随机访问存储器(RAM)903中的程序而执行图2至图6的各个实施例所做的各种操作。在RAM903中,还存储有系统架构操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (13)
1.一种构建脚本的方法,其特征在于,包括以下步骤:
响应于对目标项目构建脚本的指令,获取所述目标项目的源代码;
根据所述源代码,确定构建脚本的构建类型;
基于所述构建类型,建立对应的构建器;
将所述构建器存储在所述目标项目的外部,并在所述目标项目中标记所述构建器的标识;
获取所述目标项目中标记的构建器的标识;
基于所述标识,外部调用所述构建器;
利用外部调用的所述构建器,对所述目标项目构建脚本。
2.根据权利要求1所述的方法,其特征在于,所述基于所述构建类型,建立对应的构建器,包括:
基于所述构建类型,开发构建器脚本;
根据预设形式,封装所述构建器脚本;
在构建平台上,将封装的构建器脚本进行注册;
安装注册的构建器脚本,得到所述构建器。
3.根据权利要求1所述的方法,其特征在于,所述基于所述构建类型,建立对应的构建器,包括:
基于所述构建类型,为一个或者多个所述目标项目建立同一个所述构建器。
4.根据权利要求1所述的方法,其特征在于,所述利用调用的所述构建器,对所述目标项目进行构建脚本,包括:
利用调用的所述构建器,获取所述目标项目的源代码;
将所述源代码编译成为用于执行所述目标项目的代码。
5.根据权利要求4所述的方法,其特征在于,前端业务包括以下业务中的至少一种:
计算机浏览器页面业务、手机浏览器页面业务、嵌入于应用中的页面业务。
6.根据权利要求1所述的方法,其特征在于,所述构建类型包括以下类型中的一种或者多种:
webpack类型、gulp类型、grunt类型、rollup.js类型、parcel.js类型、shell script类型。
7.根据权利要求1-6中任一项所述的方法,其特征在于,还包括:
响应于维护所述构建器的指令,对所述构建器进行维护,以利用维护后的所述构建器,针对所述构建器相应的一个或者多个所述目标项目构建脚本。
8.根据权利要求1-6中任一项所述的方法,其特征在于,还包括:
响应于变更所述目标项目对应的所述构建器的指令,在所述目标项目中变更所述构建器的标识。
9.一种构建脚本的方法,其特征在于,包括以下步骤:
由云端服务器接收来自本地服务器的对目标项目构建脚本的本地指令;
响应于所述本地指令,获取所述目标项目的源代码;
根据所述源代码,确定构建脚本的构建类型;
基于所述构建类型,构建对应的构建器;
将所述构建器存储在所述目标项目的外部,并在所述目标项目中标记构建器的标识;
获取所述目标项目中的源代码以及所述目标项目中标记的构建器的标识;
基于所述标识,调用所述云端服务器中的构建器;
利用所述构建器,对所述目标项目中的源代码构建脚本,得到构建结果;
将所述构建结果反馈至所述本地服务器。
10.一种构建脚本的装置,其特征在于,包括:
标识获取单元,用于响应于对目标项目构建脚本的指令,获取所述目标项目中标记的构建器的标识;
构建器调用单元,用于基于所述标识,外部调用所述构建器;
脚本构建单元,用于由外部调用的所述构建器,对所述目标项目构建脚本;
所述构建脚本的装置还包括代码获取模块、类型确定模块、构建器建立模块和标识标记模块;
所述代码获取模块,用于获取目标项目的源代码;所述类型确定模块,用于根据源代码,确定构建脚本的构建类型;所述构建器建立模块,用于基于构建类型,构建对应的构建器;所述标识标记模块,用于将构建器存储在目标项目的云端服务器,并在目标项目中标记构建器的标识。
11.一种构建脚本的装置,其特征在于,包括:
指令接收单元,用于由云端服务器接收来自本地服务器的对目标项目构建脚本的本地指令;
信息获取单元,用于响应于所述本地指令,获取所述目标项目中的源代码以及所述目标项目中标记的构建器的标识;
构建器调用单元,用于基于所述标识,调用所述云端服务器的构建器;
脚本构建单元,用于由所述构建器,对所述目标项目中的源代码构建脚本,得到构建结果;
结果反馈单元,用于将所述构建结果反馈至所述本地服务器;
所述构建脚本的装置还包括代码获取模块、类型确定模块、构建器建立模块和标识标记模块;
所述代码获取模块,用于获取目标项目的源代码;所述类型确定模块,用于根据源代码,确定构建脚本的构建类型;所述构建器建立模块,用于基于构建类型,构建对应的构建器;所述标识标记模块,用于将构建器存储在目标项目的云端服务器,并在目标项目中标记构建器的标识。
12.一种构建脚本的装置,其特征在于,包括:
存储器,用于存放程序;
处理器,用于执行所述存储器存储的程序,所述程序使得所述处理器执行如权利要求1-9中任意一项所述的方法。
13.一种计算机可读存储介质,其特征在于,存储有指令,
当所述指令在计算机上运行时,使得计算机执行如权利要求1-9中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810752846.9A CN110704036B (zh) | 2018-07-10 | 2018-07-10 | 构建脚本的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810752846.9A CN110704036B (zh) | 2018-07-10 | 2018-07-10 | 构建脚本的方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110704036A CN110704036A (zh) | 2020-01-17 |
CN110704036B true CN110704036B (zh) | 2023-05-26 |
Family
ID=69192633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810752846.9A Active CN110704036B (zh) | 2018-07-10 | 2018-07-10 | 构建脚本的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704036B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135877A (zh) * | 2010-01-27 | 2011-07-27 | 金蝶软件(中国)有限公司 | 自动化构建方法及装置 |
CN102968298A (zh) * | 2012-10-31 | 2013-03-13 | 山东浪潮齐鲁软件产业股份有限公司 | 一种软件产品构建方法 |
CN105824614A (zh) * | 2015-12-15 | 2016-08-03 | 广东亿迅科技有限公司 | 基于Docker的分布式开发环境的搭建方法及装置 |
CN106874050A (zh) * | 2017-02-20 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种系统自动升级方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100506522B1 (ko) * | 2003-02-24 | 2005-08-03 | 삼성전자주식회사 | 자바 프로그램에서 바이트 코드의 컴파일 시간 단축시스템 및 방법 |
-
2018
- 2018-07-10 CN CN201810752846.9A patent/CN110704036B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135877A (zh) * | 2010-01-27 | 2011-07-27 | 金蝶软件(中国)有限公司 | 自动化构建方法及装置 |
CN102968298A (zh) * | 2012-10-31 | 2013-03-13 | 山东浪潮齐鲁软件产业股份有限公司 | 一种软件产品构建方法 |
CN105824614A (zh) * | 2015-12-15 | 2016-08-03 | 广东亿迅科技有限公司 | 基于Docker的分布式开发环境的搭建方法及装置 |
CN106874050A (zh) * | 2017-02-20 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种系统自动升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110704036A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017166447A1 (zh) | 内核模块加载方法和装置 | |
CN107979508A (zh) | 微服务测试方法及装置 | |
CN105718289A (zh) | 一种组件关系建立方法及其设备 | |
US11068243B2 (en) | Application stack builder based on node features | |
CN113805973B (zh) | 应用程序控制方法及装置、应用程序开发方法及装置 | |
CN113515271B (zh) | 服务代码生成方法、装置、电子设备及可读存储介质 | |
CN110221840B (zh) | 应用程序的功能实现方法及装置、设备及存储介质 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN113468067B (zh) | 应用程序的调试方法、装置、电子设备和计算机可读介质 | |
CN112835568A (zh) | 一种项目构建方法和装置 | |
CN102377793B (zh) | 基于移动通讯设备终端的Flash交互方法及装置 | |
CN114489704A (zh) | 基于策略的版本编译部署方法及装置 | |
CN112015384A (zh) | 一种接口映射方法和装置 | |
CN113778393A (zh) | 组件生成方法、装置、计算机系统和计算机可读存储介质 | |
CN110704036B (zh) | 构建脚本的方法、装置和存储介质 | |
CN111949536A (zh) | 基于字节码技术的java应用程序测试方法及系统 | |
CN113656050A (zh) | 用于生成版本号的方法和装置 | |
CN111782420A (zh) | 基于Java Web框架的信息处理方法、装置、设备和介质 | |
CN114092590B (zh) | 电子设备及其图像渲染性能的评估方法、介质 | |
CN113220374A (zh) | 软件处理方法和装置 | |
US20220334820A1 (en) | System and method for intermediate software upgrades for information handling systems | |
CN111124523A (zh) | 用于初始化应用的方法和装置 | |
CN114237819A (zh) | 基于Java虚拟机进行处理的方法及装置、电子设备 | |
CN114301970A (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN115080434A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |