我有几个java项目,每个客户端之间的差异很小,这些差异是:
当我去更新客户端时,我致力于SVN并使用Jenkins为每个项目生成WAR(大约90mb),上传到FTP并在每台服务器上安装它。
我遇到的问题是我这样做的时间,每周6个项目需要3到4个小时。
答案 0 :(得分:0)
所有客户都可能由一个项目(单一WAR)处理,并将战争之外的差异分开?
当然可是......忍受我一秒钟。
有4个小时的构建/部署时间,我说jenkins服务器和生产服务器之间的带宽可能是个问题。如果升级不可行,则需要优化项目设置。
通常,war文件大小的90%由应用程序依赖的库集合组成(spring,hibernate,struts等等)。 假设您当前将它们存储在WEB-INF / lib文件夹中,您可以考虑提取它们并将它们安装在应用程序服务器共享类路径中,从战争中删除它们。
如果在此操作之后您不需要进一步优化,那将不会让我感到震惊......
答案 1 :(得分:0)
我发现当我需要节省时间时,这个命令每次都会救我:
rsync -razpv --delete /folder/name server_name:/folder/name
您还可以添加:
--exclude 'file/inside/folder'
干净利落,明智地使用它,但是为我的一些构建复制文件的过程总是花费20分钟,现在在没有变化时需要10秒,而在有变化时不到1分钟。
另外 - 您是否考虑过管理工具(木偶/厨师/ ansible)来完成某些工作?