一种项目模块分离部署的方法
文献发布时间: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错误。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种项目模块分离部署的方法
- 一种自动部署方法、部署服务模块及部署应用模块