2

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

4

4 回答 4

5

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

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

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

  1. 您可以将库放在 tomcat 的公共目录 (tomcat-dir/common/lib) 中,并将它们从您的 war 文件中的依赖项中删除(如果它们位于两个 Web 应用程序中,Tomcat 是否会将相同的库文件加载到内存中两次?)。
  2. 将静态文件放在您的 tomcat 上的 cdn 或其他 Web 应用程序上(尽管这需要修改代码)
于 2013-08-30T05:51:42.957 回答
1

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

于 2014-12-03T15:48:20.167 回答
0

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

于 2013-08-30T20:58:34.577 回答