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

前端之家收集整理的这篇文章主要介绍了java-更新Web应用程序的静态资源 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们有一个依赖于资源的Web应用程序(Java Tomcat Spring Maven).因此app-1.0.1.war取决于resources-1.0.3.jar.当我们需要修复资源中的错误时,我们需要

>发布一个新的资源罐=> 1.0.4
>更新Web应用程序的Maven Pom中的依赖关系
>发动新战争=> 1.0.2
>部署网络应用

在我们团队中,有人认为这不是一种有效的方法.他们宁愿

>释放一个新罐子
>在服务器上上传jar

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

>您需要对包含资源的jar的名称进行硬编码.
>您不知道该应用程序正在使用的资源的版本.

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

最佳答案
我们的项目也采用类似的方法.

>发布一个新的资源罐=> 1.0.4
>更新Web应用程序的Maven Pom中的依赖关系
>发动新战争=> 1.0.2
>部署网络应用

这样做有很多原因,其中一些是对我很重要的原因:

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

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

<version>LATEST</version>

编辑:

So basically no redeployment of the app

这是不正确的,资源只会在每次运行mvn安装时(每次构建战争时)才更新.

因此,是的,在开发过程中,您将始终拥有最新的jar,但较旧的战争不会突然与新发布的jar捆绑在一起.相信我,您绝对不想要那样.

您只需要减少一个步骤:

>更新Web应用程序的Maven Pom中的依赖关系

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

猜你在找的Spring相关文章