我正在努力让我的头包裹在ANT, CI, SVN和部署。我有一个开发服务器,一个暂存/qa服务器,一个生产服务器和构建服务器。
理论上,CI构建服务器(bamboo)将运行构建并(FTP??)然后到开发服务器。在某些时候,我们将决定将构建部署到登台服务器。如何更新作为ANT任务一部分的FTP信息?当我们部署到生产服务器时,同样的问题也适用。
我想你是在找configuration management
?你的脚本本身应该做同样的事情,不管它们在哪里运行——开发、登台或生产。但是,您可以为每个环境拥有配置文件,这些配置文件将具有特定于各自环境的配置值。脚本将从这些配置文件中读取值,并适当地配置应用程序。
和回答你的多个构建文件的直接问题,不,有一个构建文件与单个目标部署(多个目标不是必要的,但可以根据情况使用),详细信息如下:
给出一些细节:
拥有dev.config、stage. config等配置文件。config、prod.config(或.properties
文件)等。该配置将包含机器ip,环境其他部分的值等,以及应用程序在该环境中配置和运行所需的任何内容。
假设您在ant中有一个"部署"目标。让它从命令行读取一些属性"environment" (-Denvironment=stage)
使用此属性读取配置文件和值,并使用这些值进行部署。使用基于convention over configuration
的方法,只有当值与特定环境的默认值不同时,配置文件才能覆盖一些相同的默认值。
将有一个单一的目标,"environment"属性值指定要使用的环境配置。
您可以创建两个任务,例如:"ftp_to_dev"one_answers"ftp_to_staging",然后调用你想要的那个