Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Configuration 如何使用ant支持多个构建配置?_Configuration_Ant_Build - Fatal编程技术网

Configuration 如何使用ant支持多个构建配置?

Configuration 如何使用ant支持多个构建配置?,configuration,ant,build,Configuration,Ant,Build,我想知道使用ant支持多个构建版本的最佳方式是什么。在我当前的项目中,我有3个环境(开发、测试、生产)。有两台生产服务器具有不同的配置(不同的数据库、活动目录、webservice URL等)。一次至少运行两个测试版本。添加其他配置选项只是为了在启用/禁用某些功能的情况下测试行为 如何使用ant处理这一切 目前,我们有一些目录,其中包含每个配置的一组文件(persistence.xml、datasource、web.xml、jboss特定文件、几个应用程序属性文件…),这些文件在构建过程中被复制

我想知道使用ant支持多个构建版本的最佳方式是什么。在我当前的项目中,我有3个环境(开发、测试、生产)。有两台生产服务器具有不同的配置(不同的数据库、活动目录、webservice URL等)。一次至少运行两个测试版本。添加其他配置选项只是为了在启用/禁用某些功能的情况下测试行为

如何使用ant处理这一切

目前,我们有一些目录,其中包含每个配置的一组文件(persistence.xml、datasource、web.xml、jboss特定文件、几个应用程序属性文件…),这些文件在构建过程中被复制到适当的目录中(它变得越来越多,所有配置中可见的更改要求我们更改所有配置的文件).
有一些任务,比如构建模块开发、构建模块开发、构建模块测试

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

  • 加载生成属性
  • 将服务器类编译为build dir
  • 将web类编译为build dir
  • 构建接口(gwt)
  • 将静态资源和正确的配置文件复制到build dir中
  • 制造耳朵/战争/罐子
  • 因此,我想知道:

    • 如何使它更简单
    • 保留单独的文件或使用类似“替换任务”的方法更好吗
    • 你是怎么做到的

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

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

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

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

    我知道这超出了您关于管理配置的问题,但只有在整个部署管道的情况下,您才能朝着更好的方式管理每个环境的配置


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

    目前,我已设法将所有配置文件移到ear归档之外,因此所有环境只有一个版本(将上下文根从jboss-web.xml中移出是一个棘手的问题)配置保存在给定服务器的文件系统中。它可以解决我的问题一段时间,但我希望我能抽出时间阅读你提到的那本书。