我试图弄清楚如何通过相当慢的 VPN 连接将一个巨大的(40-50 MB)EAR 文件部署到服务器。 EAR 包含在 Glassfish 中创建的 EJB 和 WAR 项目,并且 90% 的文件大小来自使用的外部依赖库。
也许我们需要编写自定义 Ant 脚本?开始使用maven?
谢谢大家热心解答
博佐
最佳答案
这就是为什么将您的依赖项移出 EAR 并移入共享目录是一个坏主意的原因:通过将所有依赖项保留在 EAR 中,应用服务器能够干净地取消部署/重新部署该 EAR 并回收它在 EAR 中使用的空间JVM 堆(对于 Sun JVM,permgen)。如果您将某些依赖项移动到共享库中,您将面临风险,这些依赖项将维护对 EAR 中定义的某些对象的硬引用。这意味着无法删除 EAR 类,最终您的应用服务器将在 permgen 空间用完后崩溃。
我对 SSH 的建议基于“VPN”意味着 Windows SMB,它在复制文件时有很多来回通信的假设。使用 SSH(或更准确地说,SCP 或 RSYNC),您可以使用连接的全部带宽。
如果这仍然太慢,您应该考虑更改您的基础架构。由于 VPN 对我来说意味着企业网络,也许您可以在与部署机器相同的网段上设置构建机器。从流程的角度来看,无论如何这是一个更好的主意:您不应该从开发人员工作站部署构建。相反,您应该将源代码 check out 到一个干净的环境中,进行构建、运行测试,然后进行部署。
另一种方法是查看您的特定应用程序服务是否支持“爆炸耳朵”——如果是,那么您只需上传已更改的 JAR。
关于jakarta-ee - 巨大的 EAR 部署,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1567360/