一尘不染

使用其他路径将war文件部署到Tomcat

tomcat

如果我将war文件部署到Tomcat,例如 foo-bar-1.1.2.war ,我该如何部署它以便将其提取到 webapps /
bar
且其URL根目录为 / bar / …

我的目的是将war文件及其版本信息保留在webapps服务器中,以便我知道安装了哪个版本,但覆盖了该应用程序的先前版本。

我可以使用PSI Probe部署war文件。这将允许我为Web应用程序指定目标上下文。但是,这意味着我将失去war文件名中的任何版本信息。


阅读 247

收藏
2020-06-16

共1个答案

一尘不染

Tomcat将始终将war文件的内容提取到同名文件夹中(配置为部署war时(默认情况下,等等))。

您可以将其解压缩到您选择的文件夹名称。因此,如果将其中的内容解压缩foo.warbar/手动调用的文件夹中,而不仅仅是将war拖放到web
apps文件夹中,它将仍然加载该Web应用程序。

但是,这完全没有必要,因为您可以通过覆盖应用程序的上下文根元素来指定应用程序的URL模式,而不会弄乱文件夹/ war文件名:

这通常是在Tomcat中设置的server.xml-但这种做法相当不受欢迎。相反,建议您context.xml在Web应用程序/
war文件的META-INF文件夹中使用:

<Context path="/bar" .../>

部署应用程序后,context.xml应将其复制到/conf/Catalina/localhost但重命名为foo.xml

请注意,conext根必须是唯一的,并且如果您使用autoDeploydeployOnStartup操作(源http://tomcat.apache.org/tomcat-7.0-doc/config/context.html),则还有一些其他注意事项。


其他选项包括:

  • 清理每个部署的Web应用程序文件夹,然后进行新foo-1.1.0的操作。
  • 在平面文件中包含版本号。 foo/version1
  • 或者只是将版本包含在config / XML文件中。

您还可以使用Ant(或等效工具)来自动化您的部署(并执行以上任何一项操作)。

2020-06-16