gpt4 book ai didi

java - 更新 Web 应用程序的静态资源

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:38 24 4
gpt4 key购买 nike

我们有一个依赖于资源的网络应用程序(Java + Tomcat + Spring + Maven)。所以 app-1.0.1.war 依赖于 resources-1.0.3.jar。当我们需要修复资源中的错误时,我们需要

  • 发布一个新的资源 jar => 1.0.4
  • 更新 web 应用的 maven pom 中的依赖
  • 发布新的war => 1.0.2
  • 部署网络应用

在我们的团队中,有些人认为这是一种效率不高的方法。他们更愿意

  • 发布一个新的jar
  • 上传jar到服务器

所以基本上没有重新部署应用程序。这似乎更容易,但我可以看到这种方法的几个问题:

  • 您需要对包含资源的 jar 的名称进行硬编码。
  • 您不知道该应用使用的资源版本。

更新 Web 应用程序静态资源的常见做法是什么?

最佳答案

我们的项目也采用类似的方法。

  • 发布一个新的资源 jar => 1.0.4
  • 更新web应用的maven pom中的依赖
  • 发布新的war => 1.0.2
  • 部署网络应用

这样做有很多原因,其中一些对我来说很突出:

  • 我们的内部 jar 文件(模块)在许多项目中被重复使用。旧项目可能会随着新版本的发布而中断。
  • 虽然为单个应用程序编写的单点版本可能不会造成任何问题,但重大版本可能会破坏整个应用程序。在能够进行此类发布之前,需要进行认真的集成测试。
  • 如果您有相互依赖关系,例如主应用程序需要版本 1.0.4 而另一个模块需要 1.0.1 - 主应用程序将始终赢得这个决胜局。如果 1.0.4 版本破坏了上述模块,您必须先修复它,然后才能部署您的项目。

如果这些都不适合您,请考虑阅读 Dependency Version Ranges在 Maven 文档中。像这样的东西应该可以完成你想要做的事情:

<version>LATEST</version>

编辑:

So basically no redeployment of the app

这是不正确的,资源只会在每次运行 mvn install 时更新 - 每次构建 war 时。

所以是的,在开发过程中您将始终拥有最新的 jar,但较旧的 war 不会突然与即时发布的 jar 捆绑在一起。相信我,你绝对不想那样。

你只删掉了一步:

  • 更新 web 应用的 maven pom 中的依赖

删除一个步骤会增加很多风险。查看我上面发布的链接,它可能会为您提供一些更合适的选择。 LATEST 可能不是您要查找的内容。

关于java - 更新 Web 应用程序的静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com