重命名 war 文件以更改 Web 应用程序的上下文路径

Rename war file to change the context path of an webapplication

我正在使用 maven 构建网络应用程序。我想更改生成的 war 文件的名称以获得不同的上下文路径。

澄清误解:不是在开发过程中改名,应该可以不接触任何代码(例如客户)。此外,应该可以将这些 war 部署在不同的服务器上(如 WildFly、Tomcat 等)。

示例:

Hello.war = Hello.war -> URL: localhost:8080/你好

stupid.war = stupid.war -> URL: localhost:8080/愚蠢

我怎样才能做到这一点?这可能吗?

最简单的方法是

  1. 将文件 extension.war 重命名为 .zip 并展开(双击)
  2. 将 web.xml 拖出到桌面
  3. 相应地更改 web.xml
  4. 将修改后的web.xml拖到原来的位置并替换原来的
  5. 将文件扩展名重命名回 .war

对于流行的 servlet 容器(JBoss、Tomcat、Jetty),WAR 命名约定可以驱动上下文路径。如果没有在任何地方定义明确的上下文路径,war 的名称将成为上下文路径。

a.war > localhost:8080/a
b.war > localhost:8080/b

接下来的问题就是根据您的客户将 war 重命名为不同的名称。

https://docs.jboss.org/jbossas/guides/webguide/r2/en/html/ch06.html https://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming http://www.eclipse.org/jetty/documentation/current/configuring-contexts.html

build 元素中的默认 finalName 元素覆盖为所需的文件名(不带扩展名)可能会存档您想要的内容。然后,您当然需要注意版本。例如

<build>
    <finalName>YourName</finalName>
</build>