我应该为一个项目(dev,staging,production)拥有多个build.xml文件吗?

时间:2011-08-08 18:44:04

标签: svn ant build continuous-integration bamboo

我正在努力让我的头脑缠绕在ANT,CI,SVN和部署上。我有一个开发服务器,一个临时/ qa服务器和一个生产服务器和构建服务器。

理论上,CI Build服务器(bamboo)将运行build和(FTP ??)然后运行到dev服务器。在某些时候,我们将决定将构建部署到登台服务器。如何更新作为ANT任务一部分的FTP信息?当我们部署到生产服务器时,同样的问题也适用。

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找configuration management?你的脚本本身应该做同样的事情而不管它们在哪里运行 - 开发,升级或生产。但是,您可以为每个环境配置配置文件,这些配置文件将具有特定于相应环境的配置值。脚本将从这些配置文件中读取值并正确配置您的应用程序。

要回答你关于多个构建文件的直接问题,不,有单个构建文件和单个目标进行部署(多个目标不是必需的,但可以根据具体情况使用),详情如下:

所以提供一些细节:

拥有dev.config,stage.config,prod.config(或.properties文件)等配置文件。配置将包含机器ips,环境其他部分的值等。所需的一切您的应用程序将在该环境中配置和运行。

假设你在ant中有一个“部署”目标。让它从命令行(-Denvironment = stage)

读取一些属性“environment”

使用此属性读取配置文件和值,并使用这些值进行部署。使用基于convention over configuration的方法,其中有一些合理的默认值,配置文件只有在该值与特定环境的默认值不同时才可以覆盖。

将有一个目标,“environment”属性值指定要使用的环境配置。

答案 1 :(得分:0)

您可以完成两项任务,例如“ftp_to_dev”和“ftp_to_staging”,然后只需拨打你想要的那个。