单体项目和多模块项目jar包补丁部署注意事项

这篇具有很好参考价值的文章主要介绍了单体项目和多模块项目jar包补丁部署注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

目前接触的项目结构主要有单体项目和多模块项目,且这些项目是部署在网络环境一般的服务器上,随着项目规模变大,单个jar的体积动辄就上百MB,每一次代码小改动不可能都上传整个jar,每次代码改动后可能就是把编译后的class文件在服务器上做一个替换,或者直接使用arthas临时更改代码逻辑,但在我所处的环境下并不建议使用arthas(其修改的代码只在当此运行时才生效,因为登录这个服务器做其他工作的人员比较多,不排除会重启该程序,如果重启后原来改动随即失效)。下面简单介绍一下单体架构和多模块架构补丁部署时注意事项(仅供参考)。

单体

单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
使用maven打包后在target中生成jar包文件,使用压缩包打开后可以看到这样的目录结构
单体结构下目录简单明了,替换的class文件直接在cn目录进去找到,目录下都是class文件然后替换即可。替换mapper或者其他配置文件也是如此。
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea

特别注意:如果你添加依赖,并把依赖的jar放到lib下,你的jar不能被压缩,否则会出现以下情况
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
这里看到我添加进去的jar已经被压缩了,添加前后大小不一致。启动后
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
java.lang.IllegalStateException: Unable to open nested entry ‘BOOT-INF/lib/hutool-all-5.8.18.jar’. It has been compressed and nested jar files must be stored without compression. Please check the mechanism used to create your executable jar file这样一个错误。其原因就是jar被压缩了。

怎么解决?

我电脑上安装的压缩软件是Bandizip,点击添加、更多选项、在压缩级别选择仅存储。(如果你使用的rar或者其他压缩软件,可以自行搜索相应方法)
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
添加进去后可以看到压缩前后大小一致,测试启动正常。
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea

多模块

单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
这里首先介绍以下多模块jar包结构,其classes目录下只有start模块下的启动类
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
原因我们可以在start模块的pom文件中看到,其他模块都是作为start模块的依赖来引入的,那么依赖一定都是在lib目录下。
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
很快嗷,在lib目录下找到了这些模块
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
随便打开其中一个就可看到其中熟悉的目录,以及被编译后的class文件。
单体项目和多模块项目jar包补丁部署注意事项,随记,jar,java,maven,idea
在多模块下,如果修改了某处地方,可以将修改的那个模块打包上传然后替换,当然务必记住jar不能压缩,否则启动后也会报上述单体项目一样的错误。其解决方式和单体的添加依赖jar包一致,可以看上面。

jar为什么不能压缩

jar包在经过手动解压缩和压缩后可能会出现无法运行的问题,这可能并非代码本身的问题,而是与压缩方式有关。当jar包的大小发生变化时,可能会导致文件内容或结构的改变,从而影响到jar包的运行。

其他解决方式

参考:https://www.cnblogs.com/dayou123123/p/6845432.html文章来源地址https://www.toymoban.com/news/detail-812731.html

到了这里,关于单体项目和多模块项目jar包补丁部署注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AD9910模块高速DDS模块、功能性能讲解、开发调试注意事项、代码详解、电子设计大赛DDS

    AD9910是一款内置14 bit DAC的直接数字频率合成器(DDS),支持高达1GSPS的采样速率。AD9910采用高级DDS技术,在不牺牲性能的前提下可极大降低功耗。DDS/DAC组合构成数字可编程的高频模拟输出频率合成器,能够在高达400MHz的频率下生成频率捷变正弦波形。 用户可以访同三个用于控制

    2024年02月16日
    浏览(29)
  • windows环境部署seata注意事项

    如图: 修改config.txt 修改registry.conf(registry.nacos和config.nacos都要修改) 将配置导入nacos中 创建seata相关数据库(sql文件在seata-serverscriptserverdb下面) pom.xml添加依赖 入口函数添加注解:@EnableAutoDataSourceProxy 配置文件添加: 服务都有了,测试一下分布式事务是否正常扣减(故

    2024年02月13日
    浏览(25)
  • 部署无线AP的十个注意事项

    无线AP(Access Point) 如果无线网卡可比作有线网络中的以太网卡,那么AP就是传统有线网络中的HUB,也是目前组建小型无线局域网时最常用的设备。AP相当于一个连接有线网和无线网的桥梁,其主要作用是将各个无线网络客户端连接到一起,然后将无线网络接入以太网(这正是

    2024年02月07日
    浏览(27)
  • 重构项目的十大注意事项

    在开始重构之前,需要明确重构的主要目的和所需实施的步骤。 在确认重构的目的和范围时,需要考虑以下几个方面: 改进代码的可读性和可维护性 。重构的主要目的是将现有代码转化为易于理解和修改的形式。 优化代码的性能 。将代码优化并减少不必要的重复,可以提

    2024年02月10日
    浏览(34)
  • [游戏开发][虚幻5]新建项目注意事项

    鼠标右键点击Client.uproject文件,可以看到三个比较关键的选项, 启动游戏, 生成sln解决方案, 切换引擎版本 断点调试 C++代码重要步骤 如果你想断点调试C++代码,则必须使用使用代码编译启动引擎,你需要做几个操作 1:把你的游戏作为启动项。如果你不设置,则默认打开

    2024年02月22日
    浏览(33)
  • 微信小程序创建项目以及注意事项

    1.申请账号并完善信息 2.下载安装开发工具  3.开发小程序 4.上传代码 5.提交审核 6.发布 创建项目 根据需求选择模板,也可以不选择模板  创建完毕之后 进入页面点击终端 然后新建终端 输入npm init  一直按回车即可  安装成功 出现package.json   如何使用组件??? 好我们拿

    2024年02月11日
    浏览(33)
  • idea项目导入流程及运行注意事项

    小白的初体验! 1、首先打开我们的idea      (既然讲的就是导入idea项目,想必小白也和我这个小白一样对idea有那么一丢丢了解了,所以就不先不配图了) 2、import project 3、然后就会让你选择路径,所以需要你找到你想要打开的项目名 4、点击,项目就成功导入进来了 配置

    2024年02月05日
    浏览(34)
  • Doris注意事项,Doris部署在阿里云,写不进去数据

    Doris官网 https://doris.apache.org/ 本地idea访问FE,FE会返回BE的地址,但是在服务器上通过ip addr查看,发现只有局域网IP,所以FE返回了局域网的IP,导致idea连接不上BE 重写BackendV2类,返回公网IP即可。 在项目下新建包名 然后放入 BackendV2类 然后重写修改toBackendString()方法,将公网

    2024年02月14日
    浏览(23)
  • RN_iOS项目编译注意事项

    打包脚本(buildRNiOSBunble.sh) 1 编译RN代码 bjy_rnreactnative分支和bjy_ios原生分支放在同级目录下,进入bjy_rn目录 更新最新rn代码 编译rn代码 node_modules引入 yarn install 2 生成.jsbundle文件 react-native bundle --entry-file index.js --bundle-output …/bjy_ios/ w o r k s p a c e n a m e / {workspace_name}/ w or k s p a c

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包