我知道这里有很多信息……但可能还有其他人遇到这样的问题,我认为讨论这个问题会有很大帮助,或者至少得到一些体面的输入/建议。
好的,让我首先概述一下我们的环境。
我们有一个包含大约 11 个 JAR 的多模块 maven 项目。依赖于这些内部 JAR 的是 9 个 WAR 文件,其中 8 个放在一个 EAR 文件中。剩余的 WAR 文件作为单独的应用程序单独部署。当构建 8 个 WAR 文件(驻留在 EAR 中)时,它们被构建为精简的 WAR 文件,因此生成的 EAR 文件大小最小,所有依赖项都位于 APP-INF/lib 部分中。所有这些都没有问题。我们目前部署到具有大量内存和 CPU 的远程WebLogic 10.3 服务器,因此负载不在我们的个人计算机上。我们还使用持续集成构建服务器发布夜间快照。
我们正在部署的工件:
包含 8 个 WAR 文件、11 个内部 JAR 和第三方库的 EAR 文件:~70MB
其他 WAR 文件:~110MB
我们的一些软件工程师希望通过 VPN 连接在家工作,并拥有增量/热部署选项。否则,由于我们使用 Web 逻辑/maven 进行部署的方式,他们被迫构建整个 EAR 文件或 110MB WAR 文件并通过 VPN 上传它们。这不好玩,也不快。我一直在阅读JRebel,想知道是否有其他人使用 JRebel 和多模块 maven 项目进行远程部署,以及如何有效地进行。
根据我的一些阅读,建议将更改“上传”到服务器,并让 rebel.xml 配置为特定部署读取这些目录……好吧,这让我们想到了手头的问题。我如何告诉 Maven 将更改的资源/新编译的类文件转储到其他目录,以便我可以将它们上传到服务器和适当的文件夹(我们的服务器托管类似 10+ WebLogic 实例在各种端口上运行,每个实例一个开发商)。或者只是让开发人员与网络共享他们的工作区文件夹,并配置 rebel.xml 文件(例如在 JAR 中)指向适当的 //COMPUTERNAME/workspace/jarProjectName/target/classes 文件夹。我预见到的问题是,每次他们启动 WebLogic 时,都会发现所有 . 网络上的类和配置文件以及 JSP 文件,因为 rebel.xml 文件首先获胜,这在 VPN 上会很糟糕。部署完成后,热部署应该照常工作。我只是不希望在第一次启动时通过网络传输所有类的不必要开销,不仅如此,有时开发人员在办公室,关闭他们的计算机,然后回家。那么 JRebel/WebLogic 会发生什么?然后回家。那么 JRebel/WebLogic 会发生什么?然后回家。那么 JRebel/WebLogic 会发生什么?
只查看各种 maven 项目中哪些文件发生了更改,然后将它们 FTP 到服务器上的正确位置,这样 JRebel 就可以完全在服务器端完成它,这似乎是一个更好的主意。有没有人有这样做的好方法?或者,也许有人有一个根本不涉及 JRebel 的解决方案。让我们谈谈。