【发布时间】:2016-02-08 10:48:55
【问题描述】:
我想使用 maven 将应用程序 (war) 部署到远程 tomcat (v7) 中,保留现有的 context.xml - 或者也可以将 context.xml 与 war 一起部署。 我认为这是一个经典问题,如果您想通过管理器重新部署到 tomcat,它会按顺序执行取消部署和部署 - 取消部署 context.xml 作为副作用,然后应用程序无法启动。
我已经尝试过的:
- 不同设置的货物 - 没有变化
- 'autoDeploy' = false - 在 tomcat 7 下不起作用
- 限制 tomcat 写入自己的配置目录 - 抛出错误消息并且 tomcat 7 无法启动
- 将每个上下文信息放入一个 context.xml.default - 不会删除上下文,但不幸的是,我们有一些应用程序在不同的上下文中使用相同的键 不同的值:-)
- 将上下文配置放入备用路径 - 在 ${catalina.base} 之外 - 无法使其工作
- 构建一个容器 (docker) 并重新部署它 - 这是可行的,但目前这不是一个选项
我正在考虑编写一个简单的 ssh 脚本(stop-tomcat、copy-war、start-tomcat)或替代管理器脚本,但首先我想在重新发明轮子之前问你。 我看到了使用'tomcat7-maven-plugin'的解决方案,但听说它只适用于本地tomcat。 我不坚持要获得一个成熟的 maven 解决方案:如果您建议使用带有简单 REST 调用的管理器的解决方案,我也可以在 maven 中实现。
所以问题分为三种可能的解决方案(在tomcat7下):
- 通过取消部署保留 context.xml
- 使用 war 部署 context.xml
- 在不取消部署的情况下重新部署应用程序
你知道一个可靠的解决方案吗?
【问题讨论】:
标签: tomcat web-deployment tomcat-manager