减少战争规模,以便频繁重新部署(上传)到远程服务器

时间:2013-08-30 05:31:46

标签: java tomcat deployment jar war

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

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分: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. 将静态文件放在tomcat上的cdn或其他Web应用程序上(虽然需要修改代码)

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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