一种项目工程生成方法、装置、计算机设备及存储介质
技术领域
本申请涉及计算机
技术领域
,具体涉及一种项目工程生成方法、装置、计算机设备及存储介质。背景技术
在开发的初始阶段,都需要新建项目。现有的对于新项目的创建,大都是项目开发人员根据项目类型,找到已有的类似项目(或模板);手动对该类似项目的代码进行复制、拷贝到新建项目目录;然后修改项目配置,建立和远程仓库的连接,操作繁琐,影响项目工程生成效率。
发明内容
本申请实施例提供一种项目工程生成方法、装置、计算机设备及存储介质,可以提高项目工程生成效率。
本申请实施例提供了一种项目工程生成方法,包括:
获取通过指定命令行工具输入的项目模板信息;
根据所述项目模板信息确定初始项目模板;
获取项目配置信息、以及所述初始项目模板的项目代码信息;
基于所述项目配置信息、以及所述项目代码信息对所述初始项目模板进行处理,生成目标项目工程。
相应的,本申请实施例还提供了一种项目工程生成装置,包括:
第一获取单元,用于获取通过指定命令行工具输入的项目模板信息;
确定单元,用于根据所述项目模板信息确定初始项目模板;
第二获取单元,用于获取项目配置信息、以及所述初始项目模板的项目代码信息;
生成单元,用于基于所述项目配置信息、以及所述项目代码信息对所述初始项目模板进行处理,生成目标项目工程。
在一些实施例中,确定单元包括:
检测子单元,用于检测所述模板地址是否为有效地址;
第一获取子单元,用于若所述模板地址是为有效地址,则从远程用户仓库中获取与所述模板地址对应的项目模板,得到所述初始项目模板,其中,所述远程用户仓库包括多个项目模板;
第一生成子单元,用于若所述模板地址不为有效地址,则生成第一提示信息并显示,所述第一提示信息指示所述项目地址错误。
在一些实施例中,确定单元包括:
筛选子单元,用于从所述指定命令行工具中的项目模板集合中,筛选出与所述模板名称匹配的项目模板,得到所述初始项目模板,其中,所述项目模板集合包括多个项目模板。
在一些实施例中,生成单元包括:
第二获取子单元,用于获取所述初始项目模板中的初始配置文件以及初始代码文件;
配置子单元,用于根据所述项目配置信息对所述初始配置文件进行配置,处理后配置文件;
更新子单元,用于根据所述项目代码信息对所述初始代码文件进行更新,得到处理后代码文件;
构建子单元,用于基于所述处理后配置文件以及所述处理后代码文件,构建所述目标项目工程。
在一些实施例中,配置子单元具体用于:
根据所述配置信息对所述配置参数进行配置,得到所述处理后配置文件。
在一些实施例中,第一获取单元包括:
接收子单元,用于接收输入的指定指令,根据所述指定指令启动所述指定命令行工具;
第三获取子单元,用于当检测到用户通过所述指定命令行工具进行输入操作时,获取所述输入操作的输入信息,得到所述项目模板信息。
在一些实施例中,该装置还包括:
添加单元,用于若所述项目配置信息中包括地址配置参数,则根据所述地址配置参数将所述目标项目工程添加至远程用户仓库中。
在一些实施例中,该装置还包括:
标记单元,用于若所述项目配置信息中包括地址配置参数,则根据所述地址配置参数更新所述初始项目模板在所述远程用户仓库中的模板地址,并对所述初始项目模板的模板名称进行标记。
在一些实施例中,该装置还包括:
第二生成子单元,用于在所述指定命令行工具的输入界面生成第二提示信息,所述第二提示信息指示用户对所述目标项目工程执行操作。
相应的,本申请实施例还提供了一种计算机设备,包括存储器,处理器及存储在储存器上并可在处理器上运行的计算机程序,其中,处理器执行本申请实施例任一提供的项目工程生成方法。
相应的,本申请实施例还提供了一种存储介质,存储介质存储有多条指令,指令适于处理器进行加载,以执行如上的项目工程生成方法。
本申请实施例通过设计一种命令行工具,通过指定指令触发命令行工具启动,用户自定义选择项目工程模板,然后通过命令行,交互式输入新项目工程配置文件的配置项信息,获取项目工程模板代码,根据配置信息和项目工程模板代码完成项目工程的创建,可以提高项目工程生成效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种项目工程生成方法的流程示意图。
图2为本申请实施例提供的另一种项目工程生成方法的流程示意图。
图3为本申请实施例提供的一种项目工程生成装置的结构框图。
图4为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种项目工程生成方法、装置、存储介质及计算机设备。具体地,本申请实施例的项目工程生成方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
例如,该计算机设备可以是服务器,该服务器可以获取通过指定命令行工具输入的项目模板信息;根据所述项目模板信息确定初始项目模板;获取项目配置信息、以及所述初始项目模板的项目代码信息;基于所述项目配置信息、以及所述项目代码信息对所述初始项目模板进行处理,生成目标项目工程。
基于上述问题,本申请实施例提供第一种项目工程生成方法、装置、计算机设备及存储介质,可以提高项目工程生成效率。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例提供一种项目工程生成方法,该方法可以由终端或服务器执行,本申请实施例以项目工程生成方法由服务器执行为例来进行说明。
请参阅图1,图1为本申请实施例提供的一种项目工程生成方法的流程示意图。该项目工程生成方法的具体流程可以如下:
101、获取通过指定命令行工具输入的项目模板信息。
其中,指定命令行工具由本申请设计,可以通过编程语言进行开发,比如,JavaScript语言。
其中,JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
具体的,在Node项目中,通过指定模板入口文件package.json中的bin字段,提供可在命令行执行的命令,及命令对应的功能实现。
其中,Node是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。实质是对Chrome V8(V8是由Google开发的开源JavaScript引擎,也被称为虚拟机,模拟实际计算机各种功能来实现代码的编译和执行)引擎进行了封装。Node对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行JavaScript的速度非常快,性能非常好。Node是一个基于Chrome JavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。
例如,实现代码如下:
上述代码对bin定义了std和std-ide-cli两个指令;在命令行中输入以上两个指定后,实际执行的是bin/cli文件中的代码。
进一步的,为了使Node可以执行bin/cli中的脚本代码,可以在bin/cli文件开头进行如下声明:
#!/usr/bin/env Node
这行头部声明解决了不同的用户Node路径不同的问题,可以让系统动态的去查找Node来执行选中的脚本文件。
在脚本文件可执行之后,就是具体功能的实现了。在本申请实施例中,使用shell.js(shell指的是为使用者提供操作界面的软件,也即命令解析器。接收用户命令,然后调用相应的应用程序)指定shell脚本;使用download-git-repo npm包的API(Application Program Interface,应用程序接口)拉取模板仓库代码;利用chalk(chalk是一个颜色的插件)、commander、inquirer(用来实现命令行交互式界面的工具)、Ora等npm包实现命令行可视化交互输入,并提供一个友好的用户操作界面;使用fs-extra、mem-fs等npm包实现对文件的管理。
最终,利用JavaScript将以上功能串联起来,完成指定命令行工具的开发,然后把整个项目发布到npm仓库;让用户通过指令,比如:npm [email protected]/std-ide-cli–g,即可以把该命令行工具下载安装到终端,然后输入以下指令:std或std-ide-cli即可启动使用该指定命令行工具。
其中,npm是JavaScript世界的包管理工具,并且是Node.js平台的默认包管理工具。通过npm可以安装、共享、分发代码,管理项目依赖关系等。
其中,项目模板信息用于选取项目工程模板。在本申请设计的指令命令行工具中,可以从该指令命令行工具集成的项目模板中选取初始项目模板,或者可以支持用户自定义输入项目地址(地址格式可以为http链接),通过项目地址将与该项目地址关联的模板代码拉取到本地指定的目录。
在一些实施例中,为了提高项目创建效率,步骤“获取通过指定命令行工具输入的项目模板信息”,包括以下流程:
接收输入的指定指令,根据指定指令启动指定命令行工具;
当检测到用户通过指定命令行工具进行输入操作时,获取输入操作的输入信息,得到项目模板信息。
其中,指定指令指的是用于启动指定命令行工具的指令,比如,指定指令可以为:std或std-ide-cli。用户通过使用指定指令std或std-ide-cli即可触发指定命令行工具的项目创建流程。
进一步的,当启动指定命令行工具之后,用户可以在该指定命令行工具的操作界面输入项目模板信息,以使该指定命令行工具获取相应的项目模板。
102、根据项目模板信息确定初始项目模板。
在一些实施例中,为了满足用户项目创建需求,项目模板信息可以为模板地址,步骤“根据项目模板信息确定初始项目模板”,可以包括以下操作:
检测模板地址是否为有效地址;
若模板地址是为有效地址,则从远程用户仓库中获取与模板地址对应的项目模板,得到初始项目模板;
若模板地址不为有效地址,则生成第一提示信息并显示。
其中,检测模板地址是否为有效地址,也即检测模板地址是否能够链接到远程用户仓库。其中,远程用户仓库用于存放项目文件,可以包括多个项目模板,比如,远程用户仓库可以为git仓库,git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
例如,用户输入的模板地址可以为:https://github.com,若通过检测该模板地址可以链接到远程用户仓库,则可以确定该模板地址为有效地址,获取该模板地址链接到的项目模板,即可以得到初始项目模板。
进一步的,为了节省用户等待时间,当检测到模板地址不为有效地址时,也即无法链接到远程用户仓库,则可以在指令命令行工具的操作界面生成第一提示信息,第一提示信息指示项目地址错误。比如,该第一提示信息可以为“地址输入错误,请重新输入!”。
在本申请实施例中,通过使用inquirer集中管理模板仓库,让用户创建项目的时候需要选定某一个工程模板(如:当指定命令行工具当前并未集成项目模板时,可以通过用户自定义输入项目模板git仓库地址),也可以进行下一步项目创建。
具体的,在指令命令行工具中使用inquirer功能实现如下:
首先安装inquirer npm包,完成安装之后,编写代码实现功能,实现代码如下:
在一些实施例中,为了满足用户项目创建需求,项目模板信息可以为模板名称,步骤“根据项目模板信息确定初始项目模板”,可以包括以下操作:
从指定命令行工具中的项目模板集合中,筛选出与模板名称匹配的项目模板,得到初始项目模板。
在本实施例中,可以在指令命令行工具中设计项目模板集合,该项目模板集合可以包括多个项目模板,也即该指定命令行工具集成多个项目模板,用户可以选择指定命令行工具中的项目模板,得到初始项目模板。
103、获取项目配置信息、以及初始项目模板的项目代码信息。
其中,项目配置信息可以由用户在指令命令行工具的操作界面进行输入,项目配置信息用于对项目进行配置,项目配置信息中可以包括多个项目配置参数。
比如,项目配置信息可以包括:项目名称、版本、项目描述、作者名称、项目所遵循的开源协议、项目代码管理工具、项目远程仓库地址等配置参数。
其中,项目代码信息为初始项目模板对应的代码文件,可以获取初始项目模板对应的代码文件,得到项目代码信息。
比如,用户可以从指定命令行工具关联的项目模板中选取初始项目模板,则从指定命令行工具的代码库中获取初始项目模板的代码文件,得到项目代码信息。
又比如,用户可以从远程用户仓库中的项目模板中选取初始项目模板,则可以从远程用户仓库的代码库中获取初始项目模板的代码文件,得到项目代码信息。
104、基于项目配置信息、以及项目代码信息对初始项目模板进行处理,生成目标项目工程。
在获取到项目配置信息和项目代码信息后,即可以根据项目配置信息和项目代码信息创建项目文件,得到目标项目工程。
在一些实施例中,为了提高项目工程生成效率,步骤“基于项目配置信息、以及项目代码信息对初始项目模板进行处理,生成目标项目工程”,可以包括以下操作:
获取初始项目模板中的初始配置文件以及初始代码文件;
根据项目配置信息对初始配置文件进行配置,处理后配置文件;
根据项目代码信息对初始代码文件进行更新,得到处理后代码文件;
基于处理后配置文件以及处理后代码文件,构建目标项目工程。
其中,初始项目模板可以为项目文件夹,该项目文件夹中可以包括有初始配置文件和初始代码文件。
进一步的,根据用户输入的项目配置信息对初始配置文件进行更新,得到更新后配置文件,也即处理后配置文件;根据初始项目模板的项目代码信息对初始代码文件进行更新,得到更新后代码文件,也即处理后代码文件,最后,根据处理后配置文件以及处理后代码文件生成新的项目文件夹,得到目标项目工程。
在一些实施例中,为了提高项目工程配置效率,初始配置文件至少可以包括一个配置参数,则步骤“根据项目配置信息对初始配置文件进行配置,处理后配置文件”,可以包括以下操作:
根据配置信息对配置参数进行配置,得到处理后配置文件。
例如,初始配置文件中包括:第一配置参数,第二配置参数,第三配置参数和第四配置参数等;配置信息中包括:第一配置信息,第二配置信息,第三配置信息和第四配置信息等。进一步的,通过第一配置信息更新第一配置参数的值,通过第二配置信息更新第二配置参数的值,通过第三配置信息更新第三配置参数的值,通过第四配置信息更新第四配置参数的值,以此,完成对初始配置文件的更新,得到处理后配置文件。
在一些实施例中,为了方便用户操作,在步骤“生成目标项目工程”之后,该方法还可以包括以下步骤:
若项目配置信息中包括地址配置参数,则根据地址配置参数将目标项目工程添加至远程用户仓库中。
其中,地址配置参数指示将创建的目标项目工程添加至远程用户仓库中存储,以便于用户后续对该目标项目工程进行其他使用。
本申请实施例中,对于基于指定命令行工具中的项目模板创建目标项目工程时,在目标项目工程完成初始化创建之后,可以判断用户输入的项目配置信息中是否输入有地址参数,也即是否指定新项目的远程仓库地址;如果项目配置信息中包括输入有地址参数,则可以把目标项目工程的项目远程地址设置为该地址参数。以此,实现将目标项目工程添加至远程用户仓库中存储。
在一些实施例中,为了方便用户操作,在步骤“生成目标项目工程”之后,该方法还可以包括以下步骤:
若项目配置信息中包括地址配置参数,则根据地址配置参数更新初始项目模板在远程用户仓库中的模板地址,并对初始项目模板的模板名称进行标记。
本申请实施例中,对于基于远程用户仓库的项目模板创建目标项目工程时,在目标项目工程完成初始化创建之后,可以判断用户输入的项目配置信息中是否输入有地址参数,也即是否指定新项目的远程仓库地址;如果项目配置信息中包括输入有地址参数,则可以把目标项目工程的项目远程地址设置为该地址参数。以此,实现将目标项目工程添加至远程用户仓库中存储。并将初始项目模板的远程仓库名称从origin更改为destination。
在一些实施例中,在步骤“生成目标项目工程”之后,该方法还可以包括以下步骤:
在指定命令行工具的输入界面生成第二提示信息。
在完成目标项目工程的创建之后,指定命令行工具可以生成第二提示信息,并在指令命令行工具的输入界面显示该第二提示信息。
其中,第二提示信息指示用户对目标项目工程执行操作。比如,第二提示信息可以为指令格式的信息,如:cd destination(新项目目录)、yarn。
本申请实施例公开了一种项目工程生成方法,该方法包括:获取通过指定命令行工具输入的项目模板信息;根据项目模板信息确定初始项目模板;获取项目配置信息、以及初始项目模板的项目代码信息;基于项目配置信息、以及项目代码信息对初始项目模板进行处理,生成目标项目工程。本实施例通过设计一种命令行工具,通过指定指令触发命令行工具启动,用户自定义选择项目工程模板,然后通过命令行,交互式输入新项目工程配置文件的配置项信息,获取项目工程模板代码,根据配置信息和项目工程模板代码完成项目工程的创建。以此,可以提高项目工程生成效率。
根据上述介绍的内容,下面将举例来进一步说明本申请的项目工程生成方法。请参阅图2,图2为本申请实施例提供的另一种项目工程生成方法的流程示意图,以该项目工程生成方法应用于终端为例,具体流程可以如下:
201、当终端检测到用户通过指令工具输入指定指令时,启动指定命令行工具。
在本申请实施例中,指令工具用于用户输入指令,实现指令相应功能。
其中,指定指令用于启动指定命令行工具,指定命令行工具可以为std-ide-cli,指定指令可以为:std或std-ide-cli。
202、终端根据用户通过指定命令行工具的输入操作,确定初始项目模板。
具体的,用户可以在指定命令行工具的输入界面执行输入操作,终端根据输入操作输入的信息确定初始项目模板。
例如,用户可以从指定命令行工具绑定的项目模板中选择初始项目模板,具体代码实现如下:
PS E:\CC\code\git>std
std-ide-cli
Follow the prompts to cmplete the project cofigrton.
当前终端环境变量:C:\PROGRM FIES\git\CMD\git.EXE
当前项目基于哪一模板创建
webcc模块模板(webcc-plugin-template)
>webc多页面模板(webcc-pages-template)
其他模板(需输入git地址)。
通过上述方式,可以实现从指定命令行工具绑定的项目模板中选择初始项目模板。
在一些实施例中,用户可以从自定义项目模板来确定初始项目模板,具体代码实现如下:
PS E:\CC\code\git>std
std-ide-cli
Follow the prompts to cmplete the project cofigrton.
当前终端环境变量:C:\PROGRM FIES\git\CMD\git.EXE
当前项目基于哪一模板创建其他模板(需输入git地址)
请输入其他模板地址(上一步选择使用【其他模板】的情况下需要输入)https://github。
通过上述方式,可以实现自定义项目模板来确定初始项目模板。
203、终端获取用户输入的项目配置信息,并根据项目配置信息创建项目文件。
例如,用户在指定命令行工具的输入界面可以输入如下信息:
当前终端环境变量:C:\PROGRAM FILES\git\CMD\git.EXE
当前项目基于哪一模板创建webcc多页面模板(webcc-pages-template)
请输入其他模板地址(上一步选择使用【其他模板】的情况下需要输入)
project name std-test-2
version1.0.0
description std装置测试
author张三
license(default:ISC)ISC
repository type git
repository url https://github.com/a958339481/std test-1.git。
通过上述方式,实现配置信息获取,根据配置信息生成项目文件。
204、终端获取初始项目模板的代码信息,根据代码信息和项目配置信息对项目文件进行更新,得到目标项目文件。
具体的,可以从初始项目模板的文件中获取代码文件,然后根据代码文件以及上一步骤中用户输入的项目配置信息对项目文件进行更新,具体方式可以参见上述实施例,在此不多做赘述。
205、终端判断项目配置信息中是否指定远程仓库地址。
具体的,可以检测配置信息中是否包括参数:repositoryUrl,repositoryUrl表示远程仓库地址。
206、若项目配置信息中指定远程仓库地址,则基于远程仓库地址将目标项目文件添加至远程仓库中。
例如,若检测配置信息中是包括repositoryUrl配置参数,则项目创建完成后会通过git remote rename origin destination将远程用户仓库中的初始项目模板名称从origin更改为destination,然后把指定的repositoryUrl add origin,以此,可以减少开发者操作;保留源模板的远程信息,便于更新源模板的新特性。
207、终端完成目标项目文件的创建。
例如,目标项目文件的创建过程可以在指定命令行工具操作界面显示,具体如下:
Initialized empty git repository in E:/CC/code/git/.git/
-正在从远程仓库获取模板...Clong into'std-test-2'...
模板代码获取成功
-正在更新packag.json...
########new package.json########
{
name:'std-test-2',
version:'1.0.0',
description:'std装置测试',
main:'index.js',
author:'张三',
license:'ISC',
files:['dist'],
scripts:{
dev:'cross-env POI_API development poi--serve--port 3001-rts-node/register'
beta:'cross-env POI API-development poi--prod-r ts-node/register&&node scp'
release:'cross-env POI_API-production poi--prod-r ts-node/register',
log:'standard-version',
'types:pull':'git subtree pull--prefix-types types master--squash'
},
resolutions:{'@ava/babel':'e.2.0'},
dependencies:{
'@loadable/component':'^5.14.1',
eventemitter3:'3.1.0',
'js-cookie':'n2.2.0',
mobx:'4.15.4',
'mobx-react':'6.2.2',
react:”^17.0.1',
'react-dom':'^17.0.1',
'react-router-dom':'n5.2.0'
},
devDependencies:{
'@cc/scp':'^1.0.0',
'@commitlint/cli':'^9.1.1',
'@commitlint/config-conventional':'^9.1.1',
'@types/axios':'^0.14.0',
'@types/execa':'^2.0.0',
'@types/node':'^14.14.21',
'@types/poi':'^12.5.0',
'@types/querystringify':'^2.0.0',
'@types/react':'^16.9.46',
'@types/react-dom':'^16.9.8',
'@types/underscore':'^1.10.21',
'@types/webpack':'^4.41.26',
'@types/webpack-chain':'^5.2.0',
'@types/yargs':'^15.0.12'
'@typescript-eslint/eslint-plugin':'^3.9.0','@typescript-eslint/parser':'^3.9.0',
'bahel-eslint':'^10.0.1',
'cz-customizable':'^6.3.0',
'eslint:'^7.6.0',
'eslint-config-prettier':'^6.11.0',
'eslint-config-recommended':'^4.1.0',
'eslint-plugin-json':'^2.1.2',
'eslint-plugin-prettier':'^3.1.4',
'eslint-plugin-react':'^7.20.5',
'eslint-plugin-react-hooks':'^4.0.8',
husky:'^4.2.5',
'lint-staged':'^10.2.11',
poi:'^12.10.3',
prettier:'^2.0.5',
querystringify:'^2.1.1',
replace:'^1.2.0',
sass:'^1.32.4',
'sass-loader':'^10.1.1',
'standard-version':'^8.0.2',
stylelint:'^13.6.1',
'stylelint-config-rational-order':'^0.1.2',
'stylelint-config-standard':'^20.0.0',
'stylelint-order':'^4.1.0',
'stylelint-prettier':'^1.1.2',
'ts-node':'^9.1.1',
typescript:'^3.9.7',
underscore:'^1.10.2',
yargs:'^16.2.0',
},
'lint-staged':{
'*.{js,ts,tsx}':['eslint--fix',"prettier--write'],
'*.{json,md}':[.prettier--write']
},
engines:{node:'>=10.13.0'}
########new package.json########
package.json更新成功
git remote add origin https://github.com/a958330481/std-test-1.git成功
warning:LF will be replaced by CRLF in package.json.
The file will have its original line endings in your workingdirectory[master b4e6a09]chore(init):std initial commit
1file changed,89insertions(+),89deletions(-)
rewrite package.json(99%)
fatal:couldn't find remote ref master
恭喜,项目已经创建成功
We suggest that you begin by typing:
cd std-test-2
yarn。
本申请实施例公开了一种项目工程生成方法,该方法包括:当终端检测到用户通过指令工具输入指定指令时,启动指定命令行工具,终端根据用户通过指定命令行工具的输入操作,确定初始项目模板,终端获取用户输入的项目配置信息,并根据项目配置信息创建项目文件,终端获取初始项目模板的代码信息,根据代码信息和项目配置信息对项目文件进行更新,得到目标项目文件,终端判断项目配置信息中是否指定远程仓库地址,若项目配置信息中指定远程仓库地址,则基于远程仓库地址将目标项目文件添加至远程仓库中。以此,可以提高项目工程生成效率。
为便于更好的实施本申请实施例提供的项目工程生成方法,本申请实施例还提供一种基于上述项目工程生成方法的项目工程生成装置。其中名词的含义与上述项目工程生成方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图3,图3为本申请实施例提供的一种项目工程生成装置的结构框图,该装置包括:
第一获取单元301,用于获取通过指定命令行工具输入的项目模板信息;
确定单元302,用于根据所述项目模板信息确定初始项目模板;
第二获取单元303,用于获取项目配置信息、以及所述初始项目模板的项目代码信息;
生成单元304,用于基于所述项目配置信息、以及所述项目代码信息对所述初始项目模板进行处理,生成目标项目工程。
在一些实施例中,确定单元302可以包括:
检测子单元,用于检测所述模板地址是否为有效地址;
第一获取子单元,用于若所述模板地址是为有效地址,则从远程用户仓库中获取与所述模板地址对应的项目模板,得到所述初始项目模板,其中,所述远程用户仓库包括多个项目模板;
第一生成子单元,用于若所述模板地址不为有效地址,则生成第一提示信息并显示,所述第一提示信息指示所述项目地址错误。
在一些实施例中,确定单元302可以包括:
筛选子单元,用于从所述指定命令行工具中的项目模板集合中,筛选出与所述模板名称匹配的项目模板,得到所述初始项目模板,其中,所述项目模板集合包括多个项目模板。
在一些实施例中,生成单元304可以包括:
第二获取子单元,用于获取所述初始项目模板中的初始配置文件以及初始代码文件;
配置子单元,用于根据所述项目配置信息对所述初始配置文件进行配置,处理后配置文件;
更新子单元,用于根据所述项目代码信息对所述初始代码文件进行更新,得到处理后代码文件;
构建子单元,用于基于所述处理后配置文件以及所述处理后代码文件,构建所述目标项目工程。
在一些实施例中,配置子单元具体可以用于:
根据所述配置信息对所述配置参数进行配置,得到所述处理后配置文件。
在一些实施例中,第一获取单元301可以包括:
接收子单元,用于接收输入的指定指令,根据所述指定指令启动所述指定命令行工具;
第三获取子单元,用于当检测到用户通过所述指定命令行工具进行输入操作时,获取所述输入操作的输入信息,得到所述项目模板信息。
在一些实施例中,该装置还可以包括:
添加单元,用于若所述项目配置信息中包括地址配置参数,则根据所述地址配置参数将所述目标项目工程添加至远程用户仓库中。
在一些实施例中,该装置还可以包括:
标记单元,用于若所述项目配置信息中包括地址配置参数,则根据所述地址配置参数更新所述初始项目模板在所述远程用户仓库中的模板地址,并对所述初始项目模板的模板名称进行标记。
在一些实施例中,该装置还可以包括:
第二生成子单元,用于在所述指定命令行工具的输入界面生成第二提示信息,所述第二提示信息指示用户对所述目标项目工程执行操作。
本申请实施例公开了一种项目工程生成装置,通过第一获取单元301获取通过指定命令行工具输入的项目模板信息;确定单元302根据所述项目模板信息确定初始项目模板;第二获取单元303获取项目配置信息、以及所述初始项目模板的项目代码信息;生成单元304基于所述项目配置信息、以及所述项目代码信息对所述初始项目模板进行处理,生成目标项目工程。以此,可以提高项目工程生成效率。
相应的,本申请实施例还提供一种计算机设备,该计算机设备可以为服务器。如图4所示,图4为本申请实施例提供的计算机设备的结构示意图。该计算机设备500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器501是计算机设备500的控制中心,利用各种接口和线路连接整个计算机设备500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备500的各种功能和处理数据,从而对计算机设备500进行整体监控。
在本申请实施例中,计算机设备500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
获取通过指定命令行工具输入的项目模板信息;根据项目模板信息确定初始项目模板;获取项目配置信息、以及初始项目模板的项目代码信息;基于项目配置信息、以及项目代码信息对初始项目模板进行处理,生成目标项目工程。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图4所示,计算机设备500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、引导信息、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-EmittingDiode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。
射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
音频电路505可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一计算机设备,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源507用于给计算机设备500的各个部件供电。可选的,电源507可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图4中未示出,计算机设备500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的计算机设备,获取通过指定命令行工具输入的项目模板信息;根据项目模板信息确定初始项目模板;获取项目配置信息、以及初始项目模板的项目代码信息;基于项目配置信息、以及项目代码信息对初始项目模板进行处理,生成目标项目工程。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种项目工程生成方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取通过指定命令行工具输入的项目模板信息;
根据项目模板信息确定初始项目模板;
获取项目配置信息、以及初始项目模板的项目代码信息;
基于项目配置信息、以及项目代码信息对初始项目模板进行处理,生成目标项目工程。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种项目工程生成方法中的步骤,因此,可以实现本申请实施例所提供的任一种项目工程生成方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种项目工程生成方法、装置、存储介质及计算机设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种作业要领书生成方法及系统