我是否应该为一个项目(开发、暂存、生产)提供多个 build.xml 文件

发布于 2024-11-28 06:48:41 字数 188 浏览 2 评论 0原文

我正在努力研究 ANT、CI、SVN 和部署。我有一个开发服务器、一个登台/质量保证服务器、一个生产服务器和构建服务器。

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

I'm working to get my head wrapped around ANT, CI, SVN and deploying. I have a dev server, a staging/qa server and a production server and the build server.

In theory, the CI Build server (bamboo) will run builds and (FTP??) then to the dev server. At some point, we'll decide to deploy a build to the staging server. How would I update the FTP information that is part of the ANT task? Same question applies when we deploy to the production server.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

澉约 2024-12-05 06:48:42

我认为您正在寻找配置管理?您的脚本本身应该做同样的事情,无论它们在哪里运行 - 开发、登台或生产。但是您可以为每个环境提供配置文件,这些文件将具有特定于相应环境的配置值。脚本将从这些配置文件中读取值并适当地配置您的应用程序。

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

所以给出一些详细信息:

有配置文件例如 dev.config、stage.config、prod.config(或 .properties 文件)等。配置将包含计算机 IP、环境其他部分的值等。您的应用程序所需的任何内容进行配置并运行 环境。

假设您在 ant 中有一个“部署”目标。让它从命令行读取一些属性“环境”(-Denvironment=stage)

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

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

I think you are looking for configuration management? Your scripts themselves should do the same thing irrespective of where they are running - dev, staging or production. But you can have config files for each of your environments which will have configuration values specific to the respective environment. The scripts will read the values from these config files and configure your application appropriately.

And to answer your direct question of multiple build files, no, have single build file with single target for deploy ( multiple targets are not necessary, but can be used depending on situation ), details below:

So to give some details:

Have config files like dev.config, stage.config, prod.config ( or .properties file) etc. The config will have machine ips, values for other parts of the environment, etc..anything needed for your app to be configured and run in that environment.

Say you have a "deploy" target in ant. Let it read some property "environment" from the command line ( -Denvironment=stage)

Use this property to read the config file and the values and use these values to deploy. Use convention over configuration based approach, whereby there are some sane defaults which the config files may override only if the value is different from the default for that particular environment.

There will be a single target, with "environment" property value specifying the environment config to use.

风吹雪碎 2024-12-05 06:48:42

您可以创建两个任务,例如“ftp_to_dev”和“ftp_to_staging”,然后只需调用您想要的任务即可。

You can make two tasks, e.g. "ftp_to_dev" and "ftp_to_staging", then just call the one you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文