【问题标题】:Reduce war size for frequent redeployments(uploads) to a remote server减少频繁重新部署(上传)到远程服务器的战争规模
【发布时间】:2013-09-02 18:06:17
【问题描述】:

在开发过程中,我需要经常更新我的 Web 应用程序源代码并将更新后的 war 部署到远程 Tomcat 服务器。在我的连接上上传一场大战(25MB)需要很长时间(大约 30 分钟),这非常没有效率。有什么办法可以减少战争规模?我的项目中有很多外部依赖项。我可以只部署更改(可能依赖项保持不变)吗?

【问题讨论】:

    标签: java tomcat deployment jar war


    【解决方案1】:

    这取决于您对上传过程的控制程度。如果您可以远程访问文件系统,则以下内容应该有效:

    • 上传 WAR
    • 让 Tomcat 扩展它
    • 停止 Tomcat
    • 删除 WAR
    • 启动 Tomcat
    • Tomcat 应该从扩展目录运行您的应用程序
    • 仅上传更改的文件并替换扩展目录中的旧文件
    • 对于静态文件,无需进一步操作
    • 如果更新类或 JAR,则需要重新启动 Tomcat

    【讨论】:

      【解决方案2】:

      您所要求的 (Could I deploy just the changes?) 无法完成。您还可以做一些其他的事情来减小您的 war 文件的文件大小:

      1. 您可以将库放在 tomcat 的公共目录 (tomcat-dir/common/lib) 中,并将它们从您的 war 文件 (Does Tomcat load the same library file into memory twice if they are in two web apps?) 中的依赖项中删除。
      2. 将静态文件放在一个 cdn 或您的 tomcat 上的另一个 Web 应用程序上(虽然这需要修改代码)

      【讨论】:

        【解决方案3】:

        您可以使用 git 挂钩 (http://www.git-scm.com/book/en/v2/Customizing-Git-Git-Hooks)。不过,这需要您的网络服务器上的 git 存储库。部署可能由推送事件触发。

        【讨论】:

          【解决方案4】:

          实际上,如果您可以选择爆炸式战争部署,那么您可以使用kwatee。这是一个免费且不受限制的工具(我是作者),具有简单的 Web 界面(或 CLI 自动化),可以进行增量爆炸战争更新和许多其他事情。

          【讨论】:

            猜你喜欢
            • 2015-02-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-01
            • 2014-03-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多