【问题标题】:Context path different of WAR name with Maven与 Maven 不同的 WAR 名称的上下文路径
【发布时间】:2012-02-28 09:01:59
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: java tomcat maven


    【解决方案1】:

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

    【讨论】:

    • 我不想冻结 WAR 最终名称,因为我希望版本出现在 WAR 名称中。
    • 哦,所以你想要战争名称中的版本,而不是上下文名称......明白了。如果您自己不生成 context.xml,则不确定是否可以这样做。
    • 你试过war插件配置中的containerConfigXML参数吗?我从未使用过它,但它允许您为服务器提供配置......所以它应该可以工作。
    • 是的,但它只是为了指示上下文文件在哪里以便将其放置在 META-INF 目录中,仅此而已。
    • Bleh - 这不太理想。我只是通过在名称中没有版本的情况下生成我的战争来实现这一点。但这并不能解决您的要求。将版本添加到战争的清单(如果您自动生成它可能已经存在)并且没有名称中的版本的战争会满足您的需求吗?
    猜你喜欢
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 2015-09-09
    • 2015-07-19
    • 2013-02-16
    相关资源
    最近更新 更多