我正在研究如何通过一个相当慢的VPN连接将一个巨大的(40-50 MB) EAR文件部署到服务器上。EAR包含用Glassfish创建的EJB和WAR项目,90%的文件大小来自使用的外部依赖库。
有人提出了一种将subproject).
也许我们需要写自定义的蚂蚁脚本?开始使用maven?
谢谢你们的回答,
家伙
发布于 2009-10-15 12:10:43
下面是将依赖项从EAR转移到共享目录中的一个坏主意:通过将所有依赖项保留在EAR中,应用服务器能够干净地卸载/重新部署EAR,并收回它在JVM堆中使用的空间(对于Sun JVM,permgen)。如果将某些依赖项移动到共享库中,则这些依赖项可能会维护对EAR中定义的某个对象的硬引用。这将意味着不能删除EAR类,最终应用服务器将在耗尽permgen空间后崩溃。
我对SSH的建议是基于"VPN“是指Windows,它在复制文件时有大量的来回通信。使用SSH (或者更正确地说,使用SCP或RSYNC),您可以使用连接的全部带宽。
如果这仍然太慢,您应该考虑改变您的基础设施。由于VPN对我来说意味着公司网络,也许您可以在与部署机器相同的网络段上安装一台构建机。从流程的角度来看,这是一个更好的主意:您不应该从开发人员工作站部署构建。相反,您应该将源代码签入干净的环境,进行构建,运行测试,然后部署。
另一种选择是看看你的应用服务是否支持“爆炸耳朵”--如果是的话,你只需上传已经改变的罐子。
发布于 2010-03-18 09:39:11
一种合理的方法可能是在本地构建EAR,然后使用rsync镜像文件,然后触发重新部署。由于如果基础jars不改变,EAR文件的大多数部分不会更改,因此您将从rsync算法中获得很大好处。
发布于 2012-02-08 19:27:41
为什么不将库ear复制到/glassfish安装dir/glassfish/domains/domain 1/lib,而不将它们打包到ear文件中呢?
https://stackoverflow.com/questions/1567360
复制相似问题