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

时间:2015-11-27 13:38:28

标签: java maven war

我正在使用maven构建一个Web应用程序。我想更改生成的warfile的名称以获取不同的上下文路径。

澄清误解:不是在开发期间更改名称,而是可以在不触及任何代码的情况下(例如,针对客户)。此外,应该可以在不同的服务器上部署这些战争(如WildFly,Tomcat等)。

示例:

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

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

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

3 个答案:

答案 0 :(得分:4)

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

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

问题就在于根据你的客户将战争重命名为不同的名称。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

这样做的简单方法是

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