gpt4 book ai didi

jakarta-ee - 庞大的 EAR 部署

转载 作者:行者123 更新时间:2023-12-01 12:01:00 25 4
gpt4 key购买 nike

我想弄清楚如何通过相当慢的 VPN 连接将一个巨大的 (40-50 MB) EAR 文件部署到服务器。 EAR 包含在 Glassfish 中创建的 EJB 和 WAR 项目,90% 的文件大小来自使用的外部依赖库。

  1. 有没有人想出一个从 Netbeans 优雅部署到生产系统的策略,其中部署(通过网络)只为真正需要的东西(即只有一个 WAR,而不是整个 EAR,或者只有一个库,而不是整个库子项目)。

  2. 关于第一点,如何在 Netbeans 中将外部依赖库与项目分开,以便项目在开发机器上编译,但在创建 EAR/WAR/EJB 时它不包含所有依赖 JAR ,使它变得巨大。

也许我们需要编写自定义的 ant 脚本?开始使用 maven?

谢谢大家的热心回答

博佐

最佳答案

这就是为什么将依赖项移出 EAR 并移至共享目录是一个坏主意的原因:通过将所有依赖项保留在 EAR 中,应用程序服务器能够干净地取消部署/重新部署该 EAR 并回收它所占用的空间在 JVM 堆中使用(对于 Sun JVM,permgen)。如果将某些依赖项移到共享库中,则存在这些依赖项将维护对 EAR 中定义的某些对象的硬引用的风险。这将意味着无法删除 EAR 类,最终您的应用程序服务器将在用完 permgen 空间后崩溃。

我对 SSH 的建议是基于“VPN”是指 Windows SMB 的假设,它在复制文件时有很多来回通信。使用 SSH(或更准确地说,SCP 或 RSYNC),您可以使用连接的全部带宽。

如果这仍然太慢,您应该考虑更改您的基础架构。由于 VPN 对我来说意味着公司网络,也许您可​​以在与部署机器相同的网段上设置构建机器。从流程的角度来看,这无论如何是一个更好的主意:您不应该从开发人员工作站部署构建。相反,您应该将源 checkout 到一个干净的环境中,进行构建、运行测试,然后进行部署。

另一种方法是查看您的特定应用程序服务是否支持“爆炸耳朵”——如果是,那么您只需上传已更改的 JAR。

关于jakarta-ee - 庞大的 EAR 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1567360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com