构建\部署 - 复杂场景和应用程序

时间:2013-11-07 08:29:41

标签: maven deployment ant build gradle

管理人员授权我们的团队为生产服务器创建自动构建\部署脚本。

脚本要求是:

  1. 从git。
  2. 获取Web应用程序的最新版本src代码
  3. 编译 - > WAR
  4. 连接到远程服务器(production \ test)
  5. 关闭远程
  6. 上的tomcat服务器
  7. 在远程数据库服务器上执行架构更新(适用于新版本)
  8. 将新战争部署到tomcat并启动它。
  9. 我的问题是:

    1. build \ deploy区域中的所有3个主要玩家都可以这样做(ant \ maven \ gradle)?
    2. 正在构建一个小应用程序(java应用程序),这个确切的步骤是不错的做法? (可能写一个java应用程序比在maven \ ant \ gradle中学习那样快得多)
    3. 有这种工作的替代工具吗?
    4. 对于整个“构建机器”的想法有没有更好的选择?
    5. 谢谢!

1 个答案:

答案 0 :(得分:0)

  

构建/部署区域中的所有3个主要参与者都可以这样做(ant / maven / gradle)吗?

通过对目标/目标进行足够的自定义,其中任何一个都可以做到你想要的。

  

构建一个小应用程序(java应用程序),这样做的确切步骤是好的做法吗?

你当然可以(或者只是使用shell脚本),这与自定义之前列出的构建工具基本相同。

  

这种工作有替代工具吗?

我的公司专门创建BuildMaster来解决与部署相关的这些和其他问题,听起来免费版本可能适合您的场景。

基本解决方案是:

  1. 通过添加Git源代码控制提供程序连接到Git(或者如果您使用的是GitHub,GitHub提供程序)
  2. 将代理连接到目标服务器并将其添加到BuildMaster(需要安装Windows,但如果部署到Linux则只使用SSH连接)
  3. 在部署计划中,您将使用以下操作:
    1. “构建Ant项目”或“执行Maven”以执行实际构建过程
    2. “创建构建工件”以将构建输出(无论是WAR文件还是其内容)与BuildMaster构建相关联
    3. “停止服务”以停止Tomcat
    4. “执行数据库脚本”在磁盘上执行脚本(无论是从源代码还是其他内容中删除它们)或“执行数据库更改脚本”,如果您已将其上载到BuildMaster,它们会自动生效
    5. “部署构建工件”以将先前捕获的工件部署到远程服务器
    6. “启动服务”Tomcat
  4. 这种方法的优点在于,当您创建此部署计划时,其读取内容与上述步骤中的内容非常相似。

    可能与您可以轻易添加的确切方案相关的其他好处包括:

    • 认证&签收 - 工作流程可以指定这些以确保在促销之前进行QA签收
    • 发布管理和审核 - 了解构建在什么环境中以及何时进入
    • 变量部署 - 您可以将分支逻辑添加到部署计划中,以便轻松选择“调试”或“发布”版本是否可以进行测试,例如。
    • 通知 - 用户可以订阅某些事件(部署,发布等)并在发生这些事件时接收电子邮件通知