【发布时间】:2010-10-16 04:46:04
【问题描述】:
在 Tomcat(和其他一些 servlet 容器)中,我可以将有关我的 JDBC 数据源的信息存储在 META-INF/context.xml 中。这非常有用。
但是,我的 JDBC 数据源的设置在我的开发和生产环境中可能会有所不同。我想知道其他人如何以优雅的方式处理这些差异,特别是如何以最轻松的方式为我的开发环境和生产环境设置context.xml。
【问题讨论】:
在 Tomcat(和其他一些 servlet 容器)中,我可以将有关我的 JDBC 数据源的信息存储在 META-INF/context.xml 中。这非常有用。
但是,我的 JDBC 数据源的设置在我的开发和生产环境中可能会有所不同。我想知道其他人如何以优雅的方式处理这些差异,特别是如何以最轻松的方式为我的开发环境和生产环境设置context.xml。
【问题讨论】:
您可以为特定的构建创建不同的文件。例如,创建: development.context.xml production.context.xml
然后,您可以控制在 build.xml 文件中使用哪个上下文文件。基本上,为您要使用的构建类型设置提示。当您选择开发时,它使用开发上下文文件。当您选择生产时,它使用生产上下文文件。
【讨论】:
我个人不会将这样的配置信息存储在 context.xml 中(可能在另一个属性文件或其他东西中),但是这样的一般方法是让您的构建脚本将不同版本的配置文件打包到战争/耳朵/无论如何。您可以让您的构建脚本根据您传入的参数、运行不同的目标等来决定是使用“dev”还是“production”配置文件。
我经常使用的东西是 ant 中的 task,用于将文件中的某些标记替换为过滤器文件中的值;并根据我的目标环境交换使用哪个过滤器文件。
【讨论】:
我会像凯文提到的那样做。如果您使用的是 Maven,您将使用“配置文件”。
【讨论】:
如果您想了解有关 Maven 配置文件的更多信息,请阅读以下内容:Introduction to Build Profiles
【讨论】: