Java WAR名称与Maven的上下文路径不同

Java WAR名称与Maven的上下文路径不同,java,tomcat,maven,Java,Tomcat,Maven,我想在Tomcat5中部署一个web应用程序(WAR)。我使用的是Maven 3,问题是当我部署WAR时,Tomcat会自动复制META-INF目录中的context.xml文件。然后使用WAR名称重命名该文件,应用程序的上下文路径将是WAR名称。默认情况下,它是artifactId-version.war 问题是一些客户端代码使用上下文路径连接到web应用程序,我不想在每次部署新版本的web应用程序时更改代码。有没有办法将上下文路径设置为另一个固定值 我现在不能使用tomcat插件。在Cont

我想在Tomcat5中部署一个web应用程序(WAR)。我使用的是Maven 3,问题是当我部署WAR时,Tomcat会自动复制META-INF目录中的context.xml文件。然后使用WAR名称重命名该文件,应用程序的上下文路径将是WAR名称。默认情况下,它是artifactId-version.war

问题是一些客户端代码使用上下文路径连接到web应用程序,我不想在每次部署新版本的web应用程序时更改代码。有没有办法将上下文路径设置为另一个固定值

我现在不能使用tomcat插件。在Context.xml中设置上下文路径没有帮助。此外,tomcat文档还指出,不建议在server.xml中设置上下文路径。另外,我不想更改战争名称,对我来说,始终跟踪工件版本是很重要的


谢谢

您应该在war插件配置中使用${project.build.finalName}参数,这样您就可以确保war永远不会更改名称。

我不想冻结war的最终名称,因为我希望版本出现在war名称中。哦,所以您希望版本出现在war名称中,而不是上下文名称中……明白了。如果您自己不生成context.xml,则不确定您是否可以执行此操作。那么您是否在war插件的配置中尝试过containerConfigXML参数?我从未使用过它,但它允许您为服务器提供配置…因此它应该可以工作。是的,但它只是用来指示上下文文件的位置,以便将其放置在META-INF目录中,而不是更多。呜呜-这不太理想。我只是通过在名称中没有版本的情况下生成war来实现这一点。但这并不能解决您的需求。将版本添加到war的清单中(如果您正在自动生成它,那么可能已经存在了)并且在名称中没有版本的war满足您的需要吗?