【问题标题】:Upload only source code on Tomcat remote deploy仅在 Tomcat 远程部署上上传源代码
【发布时间】:2014-09-03 13:40:24
【问题描述】:

我正在使用 Eclipse 在 tomcat 上开发 Java 应用程序。问题是,当我必须在远程服务器上部署它时,我必须上传包含所有库的 .war 文件,因此即使只更改了我的代码的一小部分,上传也会很慢。有没有办法只上传和部署应用程序的源代码?

【问题讨论】:

标签: java eclipse tomcat deployment


【解决方案1】:

嗯,这取决于您部署的解决方案有多大,以及最大限度地减少停机时间的重要性。基本上它看起来像:

  1. 构建您的二进制文件
  2. 停止 Web 应用程序
  3. 复制文件(部署的 Tomcat Web 应用的默认文件夹在 /WEB-INF)
  4. 启动网络应用程序

您可以跳过第 2 步和第 4 步,但如果您有大型 Web 应用程序,它可能会导致回收,从而将内存用尽,并且 Web 应用程序变得无法使用 - 您不希望这样。我使用稍微复杂一点的东西,因为我无法承受长时间的停机。

  1. 构建您的二进制文件
  2. 停止暂存 Web 应用程序
  3. 复制暂存文件
  4. 启动暂存 Web 应用程序
  5. 交换 Web 绑定,让 staging 成为新的实时 Web 应用程序
  6. 停止新的暂存 Web 应用程序
  7. 复制暂存文件
  8. 启动网络应用程序

Web 应用程序和暂存应用程序共享数据库和内容文件夹。

在任何情况下,您都可以手动或自动执行此操作。我个人更喜欢自动做事,但这只是偏好。此外,事情可能并且最终会失败,因此拥有可以切换到的实时环境的工作备份非常有用。

如果您使用 ANT,则可以使用sshexec task

【讨论】:

  • 谢谢 Margus,但我不明白...如何仅自动复制远程服务器上的已编译文件?
  • 您通过 ssh(或不安全的 ftp)复制它们。 ANT(ant.apache.org) 有一个名为 sshexec 的执行 ssh 任务,您可以使用它。为了自动执行此操作,您确实需要编写 ANT 构建文件。
猜你喜欢
  • 1970-01-01
  • 2018-03-06
  • 2011-03-04
  • 2011-09-22
  • 2012-03-26
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
  • 2011-07-26
相关资源
最近更新 更多