【问题标题】:How to deploy .war file with fixed path in Tomcat?如何在 Tomcat 中部署具有固定路径的 .war 文件?
【发布时间】:2021-11-14 03:49:16
【问题描述】:

我的 .war 文件是用其中的一个版本创建的。例如: myproject-1.0.0-SNAPSHOT.war

对于下一个版本,它将是第二个版本: myproject-2.0.0-SNAPSHOT.war

等等。

现在,如果我部署到 tomcat,路径会随着每个新版本而改变,因为 Tomcat 只是将文件名作为上下文路径。

当然这是不可接受的,因为路径应该是固定的。

所以我已经尝试在 META-INF 文件夹中创建一个 context.xml 文件并在那里设置路径,但没有帮助。

我还能做什么?

【问题讨论】:

    标签: java maven tomcat


    【解决方案1】:

    您可以使用“##”作为分隔符在您的战争文件名中包含上下文版本,请参阅https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Naming

    它将在部署时被剥离,为您留下与以前相同的上下文路径。

    【讨论】:

    • ## 几乎可以工作。但是 myproject-SNAPSHOT 变成了 myproject-.war 所以我还是要去掉破折号
    • 我不知道这个!绝对比我的回答更优雅。
    • @Stomf 这是 Tomcat 的管理器应用程序从中提取其“版本”列的地方。反正没见过太多用法。
    • 如何去掉文件名中的破折号??
    • 这行得通。 ${project.name}##${project.version}
    【解决方案2】:

    您可以在部署之前重命名 war 文件。

    或者,如果您使用管理器应用程序中的 api 进行部署,请设置路径参数

    http://localhost:8080/manager/text/deploy?path=/foo
    

    参考:https://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 2016-03-30
      • 2017-01-30
      • 2017-11-08
      • 2020-12-03
      • 1970-01-01
      相关资源
      最近更新 更多