为不同的部署分离 tomcat 配置文件的最佳方法是什么?

为不同的部署分离 tomcat 配置文件的最佳方法是什么?

目前,所有特定于应用程序的配置都是在 中完成的conf/Catalina/localhost/myWebApp.xml,并且此文件在不同的部署场景(测试/生产/个人等)之间会发生变化。我最初的想法是创建多个以显式配置命名的配置文件。理想情况下,这些特定于部署的配置文件是可以互换的。也就是说,切换包含在部署之间发生变化的参数的配置文件将是切换部署所需的唯一配置更改。

最好的做法是什么?我可以用 tomcat 覆盖属性吗?如何为 webapp 上下文使用多个配置文件?如果我可以覆盖,如何指定覆盖优先级?

谢谢。

答案1

从核心服务器端,您可以在启动时传入 Tomcat 配置本身,而不是使用默认配置,如下所示:

cd $TOMCAT_HOME
./bin/startup.sh -config /some/path/to/server.xml

此 server.xml 定义了 webapps 的“主机”元素,该元素具有多个有关如何部署的属性(请查看默认属性)。配置文档位于此处:

http://tomcat.apache.org/tomcat-6.0-doc/config/host.html

在该文档中再往下看一点,你会发现它开始谈论“自动应用程序部署”——其中有一些措辞开始谈论不同的 XML 文件。也许引擎定义的这些程序之一将允许根据您的需要创建一个工作场景;但我并没有完全按照您的要求去做,通常部署的 WAR 包含它自己的 XML 并自动解包——我不会在 webapps/foo/ 区域中覆盖解包后的文件。

答案2

显然,您能做的最好的事情就是构建一个变量解析引擎,为您需要的不同部署创建多个部署文件。

相关内容