首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以增量方式修补war文件

如何以增量方式修补war文件
EN

Stack Overflow用户
提问于 2013-01-18 07:00:37
回答 2查看 3.1K关注 0票数 1

我在客户站点部署了war文件。War文件包含包含依赖jars的lib文件夹,例如

/lib/app-01.jar /lib/spring-2.5.1.jar /lib/somefile-1.2.jar ...

如果我们需要将app-01.jar更新到app-02.jar,有什么好的解决方案吗?如何将这些依赖jars作为行业标准打包到WAR文件中?

打包那些没有版本号的依赖jars是个好主意吗?例如:

/lib/app.jar /lib/spring.jar /lib/somefile.jar ...

编者注:实际上,War是在Windows或Linux平台上部署到Webshpere、WebLogic、Tomcat上的。客户的IT部门参与部署

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-18 08:20:34

也许最优雅的解决方案就是生成一个新的war,并部署它。

原因如下:

  • 如果您担心正常运行时间,有些应用程序服务器支持并行部署。这意味着您可以部署一个新版本,并在旧版本的同时启动它。在没有人使用的时候停止旧的。(我在5年前就在WebLogic上使用过它,所以我想现在这是一个常见的特性)。但是这种功能只有在你部署一个新的WAR version.
  • Probably是使用Maven、.WAR或Gradle生成的时候才能起作用,所以更改依赖项版本并执行mvn package通常比解压WAR、更改它并再次压缩它更快、更不容易出错。
  • 所有的应用服务器都提供了一个“热替换”功能,它通过刷新类加载器来工作。它很适合开发,但在生产中可能会有问题(类加载器泄漏很常见,不正确的初始化或糟糕的编程实践导致的问题可能会给您带来意想不到的错误,比如一个类有两个版本)

关于JAR文件名:我建议保留文件名的版本。大多数JAR包含META-INF/Manifest.mf中的版本信息。但如果出于某种原因,你必须知道哪些版本正在使用你的应用程序...打开每个JAR文件以查看清单中的版本是一项大量的工作。

作为最后的建议。如果您不使用任何自动构建工具...采用一个(看看Gradle,这很好)。更新库版本,通常包括更改构建文件的版本号并执行类似gradle deploy的操作。即使您不是开发人员,而是负责devops的开发人员,拥有一个自动化的构建也会帮助您进行部署和更新。

票数 2
EN

Stack Overflow用户

发布于 2013-01-18 07:37:22

在Tomcat中,我不认为war在文件被解压之后是相关的。您可以忽略war,并将新的/更改的文件解压缩到正确的webapp目录中(与war同名的目录)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14389734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档