【问题标题】:Deploy to production through maven通过 maven 部署到生产环境
【发布时间】:2011-08-10 12:32:48
【问题描述】:

我想在 maven 中创建一个目标,将我的 java webapp 部署到生产 tomcat 7 实例。这样做的最佳方法是什么?我希望有一个插件可以处理 SFTP 的战争并告诉 tomcat 重新加载。此插件需要在出现问题时处理回滚,将更新的静态文件上传到 S3(为它们重置云端缓存)并可能同步数据库更新。

这是否需要在 Maven 之外运行脚本?还是用 Ant 最好地完成这种自动部署功能?

【问题讨论】:

    标签: deployment continuous-integration setup-deployment web-deployment continuous-deployment


    【解决方案1】:

    您可以使用cargo-maven-plugin 来实现此目的。它不会 SFTP 它可以直接远程部署到 Tomcat。如果您需要 sftp,您可以使用 wagon-plugin 来 scp 文件并通过 cargo-plugin 重新启动 Tomcat。静态文件可以由 wagon-plugin 处理(但我当时不确定)。

    此外,您不需要创建目标(这意味着您将编写一个插件)。

    我建议创建一个单独的 maven 项目,该项目依赖于您想要部署到生产的 war 文件。

    【讨论】:

    • cargo-maven-plugin 和其他tomcat插件的问题是它们上传到管理器的http PUT机制。这不允许以自动方式回滚。更不用说与部署相关的所有其他小事,其中一些我在上面提到过。
    【解决方案2】:

    对于数据库更新部分,我建议使用 Liquibase(它还处理回滚)。我还不知道您将如何进行部署回滚,但也许如果您使用 maven 发布插件或任何其他发布管理方式,您可以手动部署以前的版本。

    【讨论】:

      【解决方案3】:

      使用 elastic beanstalk 和 maven beanstalk 插件怎么样?

      【讨论】:

        猜你喜欢
        • 2012-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-04
        • 2010-12-13
        • 2013-10-15
        • 2021-04-14
        相关资源
        最近更新 更多