【问题标题】:Automated deployment using Ant or similar使用 Ant 或类似工具进行自动化部署
【发布时间】:2011-01-23 14:15:39
【问题描述】:

我想梳理一下我们的部署过程,我希望使用 Ant 或类似的构建工具来设计和实现将特定 SVN 修订版一键部署到多个服务器。

我们使用 ColdFusion 作为我们的应用程序服务器,因此我们通常只需将一组更改的文件上传到我们所有的服务器。没有编译步骤。

流程如下:

  • 从 SVN 获取特定版本并将其导出到临时目录
  • 将目录中的所有文件复制/FTP到一组Web服务器
  • 根据测试/暂存/生产等需要切换部署目标。
  • 将来我们希望在此过程中添加数据库架构更改

是否可以使用 Ant 来完成这项工作,或者是否有更好的开源工具来完成这项工作?我对 SVN 集成特别感兴趣。

我很想听听这方面的任何经验。提前致谢。

【问题讨论】:

    标签: svn deployment ant build-automation release-management


    【解决方案1】:

    是的,这个有很多来源:

    http://subversion.open.collab.net/articles/IntegratingSubversionIntoYourAntBuild.html

    http://ant.apache.org/manual/Tasks/ftp.htmlhttp://www.developer.com/java/print.php/998241

    另外,我不确定 Cold Fusion 世界中的等价物是什么,但您应该研究一下单元测试和 linting 工具。 linting 工具可以检查无效的语法和基本结构。无效的语法部分是关键。因为如果出现问题,您可以让任务停止,而不是部署已知损坏的代码。

    这只是设置各个目标(任务)并以正确的顺序将它们串在一起的问题。

    【讨论】:

    • MXUnit.org 有一些关于使用 Hudson 实施 MUUnit 以支持持续集成过程中的测试的博客文章。
    【解决方案2】:

    如果你准备好学习一点,我建议你切换到Maven和朋友。 Maven 基本上使整个开发、测试、部署和管理变得非常简单和可靠。

    有一些插件可以在整个过程中为您提供帮助。 SVN 与 Maven 集成,因此您不会有任何问题。

    这里是短名单

    1. 使用 Maven SCM plugin 签出/导出代码。
    2. Maven 将为您执行特定的构建并打包代码。
    3. 使用Maven Cargo plugin 将打包的工件/Jar/War 上传到您的服务器。您也可以重新启动服务器。
    4. 您在 Maven 中有 build-profiles,您可以根据平台(Unix、Mac、Windows 等)和环境(开发、测试、产品等)定义构建和部署行为。
    5. 在发布时,您可能希望将代码版本升级到下一个 SNAPSHOT 版本。这在 Maven 中也是自动化的。
    6. Maven 与Liquibase 的集成非常棒。它使您的数据库更改能够如此可靠地执行,以至于您找到不同之处。您将像管理 Java 代码一样管理数据库更改。在小的可回滚的变更集中,在生产环境中工作时给人很大的信心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多