我们正在为我们的webapp寻找适用于我们的持续集成系统的部署选项。我们正在构建一个.war文件。我们需要将其部署到多个不同的envs(例如DEV,QA,STAGE等)。据我所知,有两种方法在ENV特定属性来传递:将env特定属性传递到web应用程序
首先,启动Tomcat时使用-d选项:
-Denv=DEV
这要求我们定制catalina.sh
脚本每ENV。
二,使用环境变量启动Tomcat的面前:
export env=DEV;
这要求我们必须调整部署脚本每个ENV。这是平台依赖的(即在Windows上你必须做set env=DEV
)。
谁能告诉我这两个选项哪个更好?或者还有其他更好的吗?
我们正在建造Maven。但我们想为我们所有的env保留一个版本。我们以一种方式设计我们的项目,即所有应用程序配置文件都位于war文件之外(以便配置更改不会触发Maven构建)。在部署期间,我们需要将env名称(DEV,QA等)传入我们的应用程序,以便加载相应的属性文件。 – scabbage 2012-04-11 03:34:44
夫妇想法: – 2012-04-11 15:23:44
1)如果你在外部登台配置,为什么你需要一个env标识符?那个env的适当配置文件是不是那里部署的? 2)我已经使用本地主机名来识别env。这意味着你有一个映射表,但是。 – 2012-04-11 15:38:43