掌桥专利:专业的专利平台
掌桥专利
首页

一种项目模块分离部署的方法

文献发布时间:2023-06-19 13:46:35


一种项目模块分离部署的方法

技术领域

本发明属于计算机软件开发技术领域,特别是涉及到一种软件项目的功能模块的分离部署方法。

背景技术

当前计算机软件开发的项目应用越来越广,应用技术也越来越多,为了便于管理,越来越多的技术人员应用集成开发模式,同一行业的行业领域所需要的功能可以由一群功能模块覆盖,项目产品的功能模块追求的是大而全,但项目功能逐渐庞大的同时,项目文件也越来越多,这就导致项目发布包越来越大,而实际应用中每个企业发展方向和专项领域会有所不同,并不是所有企业都需要全部模块,通常客户只关心自己关注的功能,所以只会关注其中的部分模块。因此需要对项目进行分离发布,减少打包文件冗余,只打包客户所需要的功能,实现轻量部署。

发明内容

本发明提出一种项目模块分离部署的方法,在路由规范基础上实现部署时分离功能模块。

为达到上述目的,本发明的技术方案是这样实现的:

一种项目模块分离部署的方法,包括:

S1、基于.NET Core MVC前端框架和Jenkins平台进行项目开发;

S2、在.NET Core MVC中启用Area路由功能;

S3、项目启动时收集所有功能模块的区域和控制器名称;

S4、提供选择功能模块的前端页面,遍历页面及其转到页面的路由进行统计;

S5、根据统计的路由生成脚本文件;

S6、将脚本文件放置于Jenkins任务的构建步骤中,Jenkins根据脚本文件对项目进行分离部署。

进一步的,步骤S2中,启用Area路由功能后,功能模块的路由采取{area:exists}/{controller}/{action}/{id?}模式。

进一步的,步骤S5中,如果有路由的区域不在步骤S4统计的列表之内则忽略该路由。

进一步的,步骤S5中所述脚本文件的脚本内容包括:

S101、将区域文件夹全部移动到临时文件夹;

S102、将统计到的路由对应的模块区域文件夹移动回Areas文件夹下;

S103、清理临时文件夹。

进一步的,步骤S6中所述将脚本文件放置于Jenkins任务的构建步骤,该构建步骤在MSBuid和dotnet publish构建步骤之前。

与现有技术相比,本发明具有如下的有益效果:

本发明利用系统开发的统一性、可移植性,满足不同客户对功能模块的不同需求,实现分离模块部署、降低安装包的冗余,提高打包文件的纯净度,有效控制项目运维成本。

附图说明

图1是本发明实施例的整体流程示意图;

图2是本发明实施例的遍历控件示意图;

图3是本发明实施例的访问控制流程示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

为使本发明专利的目的、特征更明显易懂,下面结合附图对本发明专利的具体实施方式作进一步的说明。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明专利实施例的目的。

下面结合附图对本发明的具体实施做进一步的详细说明。

本发明是基于.NET Core框架和Jenkins,在路由规范基础上实现部署时分离功能模块,具体功能和流程如图1所示:

(1)需要准备好.NET Core MVC前端框架和Jenkins;

(2)系统模块全部使用{controller=UndefenseLogin}/{action=Default}/{id?}格式的路由;功能模块使用{area:exists}/{controller}/{action}/{id?}的路由;

(3)控制器声明Area;项目启动时收集所有功能模块的区域和控制器名称;

(4)提供前端页面可以勾选功能模块及其包含页面,遍历页面及转到页面的路由;具体包括在前端的选择功能页面,展示功能模块及其页面树,并提供勾选功能,勾选功能模块及其包含页面;便于使用者遍历页面及转到页面的路由,从内存获取Areas,过滤无效Areas;遍历功能使用遍历控件完成,如图2所示。

具体页面代码举例如下:

(5)验证控制器的有效性;

举例如下:

(6)获取选择的功能页面列表如:

[“/Demo/DemoArea/Index”,”/Demo/DemoArea/List”]

(7)通过功能页面列表生成脚本;

(7.1)将站点项目下的所有功能模块移动到临时文件夹;

xcopy DemoWeb\Areas TempAreas\/s/y

rmdir/s/q DemoWeb\Areas

(7.2)将站点项目下的所有功能模块关联的静态文件(如果没有可忽略)移动到临时文件夹

xcopy DemoWeb\wwwroot\Areas wwwrootTempAreas\/s/y

rmdir/s/q DemoWeb\wwwroot\Areas

(7.3)将需要的功能模块移动回站点项目;

xcopy TempAreas\DemoAera DemoWeb\Areas\DemoAera\/s/y

xcopy wwwrootTempAreas\DemoAera DemoWeb\wwwroot\Areas\DemoAera\/s/y

rmdir/s/q TempAreas

rmdir/s/q wwwrootTempAreas

(8)将该脚本放置于Jekins构建步骤中,该步骤在MSBuid和dotnet publish构建步骤之前;

(9)Jenkins部署。

经过上述分离部署的流程后,如图3所示,项目中已发布的功能模块,在客户端进行功能访问时可以进入业务流程处理,访问成功,没有发布的功能模块,则是访问失败,显示404错误。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种项目模块分离部署的方法
  • 一种自动部署方法、部署服务模块及部署应用模块
技术分类

06120113808214