System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及应用程序打包,特别是涉及一种应用程序打包方法、装置、介质及产品。
技术介绍
1、在spring boot框架体系下,目前应用程序打包使用比较主流的技术方式是:将整个应用程序打包为一个完整的jar包,但此方式存在以下问题:一方面是完整的jar包可能会比较大,导致部署和传输时间增加,也无法使用增量部署方式;另一方面,完整的jar包结构不清晰,静态资源、配置文件和程序代码都统一放在一起,导致应用程序的部署包可维护性差、可扩展性较弱。
2、基于上述问题,本专利技术的目的是提供了一种轻量化打包的方法及装置,能够将应用程序按照不同的模块进行分层打包,将配置文件、静态资源、依赖插件与业务代码分离开,放在不同的层级目录下,可以实现增量部署方式,提高部署效率,同时整个部署包可维护性好、可扩展性强,同时便于排查追踪问题。
技术实现思路
1、本申请的目的是提供一种应用程序打包方法、装置、介质及产品,实现增量部署方式,提高部署效率,提高整个部署包的维护性好和可扩展性,便于排查追踪问题。
2、为实现上述目的,本申请提供了如下方案:
3、第一方面,本申请提供了一种应用程序打包方法,包括:
4、将应用程序的静态资源打包至所述应用程序编译目录下的/config目录下,得到打包后的/config目录;
5、将所述应用程序的依赖插件jar文件移动到所述应用程序编译目录下的/lib目录下,得到打包后的/lib目录;
6、将依赖插件jar文
7、将所述应用程序的所有业务代码和更新后的manifest.mf文件放入所述应用程序编译目录下的/boot目录下,得到打包后的/boot目录;
8、利用zip压缩技术,将打包后的/config目录、打包后的/lib目录和打包后的/boot目录按照原始层级关系统一输出到压缩包,实现应用程序的打包。
9、可选地,将应用程序的静态资源打包至所述应用程序编译目录下的/config目录下,得到打包后的/config目录,包括:
10、从所述应用程序的resources目录和profile目录中查找所有静态资源;
11、确定所述应用程序的当前环境激活标识;
12、利用所述当前环境激活标识对各所述静态资源进行过滤;
13、将所有符合过滤要求的静态资源拷贝到所述应用程序编译目录下的/config目录下,得到打包后的/config目录。
14、可选地,确定所述应用程序的当前环境激活标识,包括:
15、从操作系统的环境变量和所述应用程序的应用配置文件中,根据app.profile配置名称查找对应的配置值;
16、根据配置值确定所述应用程序的当前环境激活标识。
17、可选地,根据配置值确定所述应用程序的当前环境激活标识,包括:
18、当配置值为dev时,将所述当前环境激活标识确定为本地开发环境;
19、当配置值为test时,将所述当前环境激活标识确定为测试环境;
20、当配置值为prod时,将所述当前环境激活标识确定为生产环境。
21、可选地,在将所述应用程序的依赖插件jar文件移动到所述应用程序编译目录下的/lib目录下,得到打包后的/lib目录之前,还包括:
22、采用maven项目依赖管理技术,获取所述应用程序的依赖树形结构拓扑图,并在应用程序编译目录下生成结构化依赖文件;所述结构化依赖文件包括:应用程序所依赖的所有依赖插件jar包信息;
23、对所述结构化依赖文件进行规范解析,得到应用程序所依赖的所有依赖插件jar文件。
24、可选地,将所述应用程序的所有业务代码和更新后的manifest.mf文件放入所述应用程序编译目录下的/boot目录下,得到打包后的/boot目录,包括:
25、利用java语言开发工具库中的file工具类以及zip压缩技术,从所述应用程序的src目录下获取所有业务代码;
26、将各所述业务代码编译后的class字节码文件以及更新后的manifest.mf文件统一压缩到jar文件中;
27、将jar文件放入所述应用程序编译目录下的/boot目录下,得到打包后的/boot目录。
28、第二方面,本申请提供了一种计算机装置,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序以实现上述任一项所述的应用程序打包方法。
29、第三方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一项所述的应用程序打包方法。
30、第四方面,本申请提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一项所述的应用程序打包方法。
31、根据本申请提供的具体实施例,本申请公开了以下技术效果:
32、本申请公开了一种应用程序打包方法、装置、介质及产品,将应用程序按照不同的模块进行分层打包,将配置文件、静态资源、依赖插件与业务代码分离开,放在不同的层级目录下,可以实现增量部署方式,提高部署效率,同时整个部署包可维护性好、可扩展性强,同时便于排查追踪问题。
本文档来自技高网...【技术保护点】
1.一种应用程序打包方法,其特征在于,所述应用程序打包方法包括:
2.根据权利要求1所述的应用程序打包方法,其特征在于,将应用程序的静态资源打包至所述应用程序编译目录下的/config目录下,得到打包后的/config目录,包括:
3.根据权利要求2所述的应用程序打包方法,其特征在于,确定所述应用程序的当前环境激活标识,包括:
4.根据权利要求1所述的应用程序打包方法,其特征在于,根据配置值确定所述应用程序的当前环境激活标识,包括:
5.根据权利要求1所述的应用程序打包方法,其特征在于,在将所述应用程序的依赖插件Jar文件移动到所述应用程序编译目录下的/lib目录下,得到打包后的/lib目录之前,还包括:
6.根据权利要求1所述的应用程序打包方法,其特征在于,将所述应用程序的所有业务代码和更新后的MANIFEST.MF文件放入所述应用程序编译目录下的/boot目录下,得到打包后的/boot目录,包括:
7.一种计算机装置,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-6中任一项所述应用程序打包方法。
9.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-6中任一项所述应用程序打包方法。
...【技术特征摘要】
1.一种应用程序打包方法,其特征在于,所述应用程序打包方法包括:
2.根据权利要求1所述的应用程序打包方法,其特征在于,将应用程序的静态资源打包至所述应用程序编译目录下的/config目录下,得到打包后的/config目录,包括:
3.根据权利要求2所述的应用程序打包方法,其特征在于,确定所述应用程序的当前环境激活标识,包括:
4.根据权利要求1所述的应用程序打包方法,其特征在于,根据配置值确定所述应用程序的当前环境激活标识,包括:
5.根据权利要求1所述的应用程序打包方法,其特征在于,在将所述应用程序的依赖插件jar文件移动到所述应用程序编译目录下的/lib目录下,得到打包后的/lib目录之前,还包括:
6....
【专利技术属性】
技术研发人员:陆宇峰,蒋琦洪,张顺晨,周纬,黄国珉,杨波,
申请(专利权)人:上海欧冶金诚信息服务股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。