gpt4 book ai didi

configuration - ant如何支持多种构建配置?

转载 作者:行者123 更新时间:2023-12-04 06:29:10 24 4
gpt4 key购买 nike

我想知道使用 ant 支持多个构建版本的最佳方法是什么。在我当前的项目中,我有 3 个环境(开发、测试、生产)。有 2 台具有不同配置的生产服务器(不同的数据库、事件目录、Web 服务 url 等)。一次至少运行 2 个测试版本。添加了一些额外的配置选项,只是为了测试启用/禁用某些东西的行为。

如何使用 Ant 处理这一切?

目前,我们有一些目录,其中包含每个配置的文件集(persistence.xml、datasource、web.xml、jboss 特定文件、几个应用程序属性文件......),这些文件在构建期间被复制到适当的目录中(它变得很多,并且在所有配置中可见的更改要求我们更改所有配置的文件)。
有诸如 build-moduleA-dev、build-moduleB-dev、build-moduleA-test 之类的任务...

一般来说,构建过程如下所示:

  • 加载构建属性
  • 将服务器类编译到构建目录
  • 将 Web 类编译到构建目录
  • 构建接口(interface) (gwt)
  • 将静态资源和正确的配置文件复制到构建目录
  • 创建耳朵/ war / jar

  • 所以,我想知道:
  • 如何让它更简单?
  • 保留单独的文件或使用替换任务之类的东西更好吗?
  • 你是怎么做到的?
  • 最佳答案

    从您写的内容中不清楚您是否已经这样做了,但是您应该为每个环境生成相同的构建工件,然后可以通过不同的环境将其作为构建管道的一部分进行提升。

    就每个环境的配置而言,您也可以将它们视为构建工件,不同之处在于每个环境都有不同的工件。另一种方法是将配置存储在应用程序启动时加载的 DB 或 LDAP 中。但是,通常有一些环境配置不能存储在 DB 或 LDAP 中,至少不能存储在 DB 或 LDAP 中以获取环境配置。

    然后,您针对特定环境的部署过程取决于该环境的构建工件和配置工件。我用过Apache Ivy使用 Ant 来管理这些类型的依赖项(以及正常的依赖项),我强烈推荐它。

    同样对于您的部署过程,您应该使用类似 PuppetCfEngine .它们允许您对环境执行幂等部署,因此与其说“给定我认为环境所处的状态,执行这些操作以使其达到我想要的状态”,它允许您说“无论状态如何所处的环境,找出需要执行的 Action 并执行它们,以达到我想要的状态”。

    我知道这超出了您关于管理配置的问题,但只有通过整个部署管道图片,您才能转向更好的方式来管理您的每个环境配置。

    有关部署管道的更多详细信息,我强烈推荐这本书 Continuous Delivery .我相信您会发现第 2 章:配置管理非常相关。

    关于configuration - ant如何支持多种构建配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5654323/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com