0

我知道这里有很多信息……但可能还有其他人遇到这样的问题,我认为讨论这个问题会有很大帮助,或者至少得到一些体面的输入/建议。

好的,让我首先概述一下我们的环境。

我们有一个包含大约 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 的解决方案。让我们谈谈。

4

3 回答 3

1

现在也可以使用 JRebel 进行远程部署。真的很容易设置,不需要特殊的网络配置,在远程机器上打开端口等。

http://zeroturnaround.com/jrebel/remoting

它严重依赖 IDE 插件,但体验就像在本地机器上开发一样

于 2012-05-05T18:19:22.517 回答
0

您应该做的是让每个开发人员运行他们自己的本地 WebLogic 实例。

WebLogic 有相当多的内存使用,但必须通过 VPN 进行部署将是一个失败的提议。唯一可行的方法是使用LiveRebel。但是同样,您仍然会为网络传输付出沉重的代价,尤其是在连接速度较慢的情况下。

您最好在 JDeveloper WLS 中运行您的应用程序并删除 WebLogic 的巨大共享实例。

于 2011-03-08T22:51:59.680 回答
0

为什么不为此使用 samba (http://en.wikipedia.org/wiki/Samba_(software)) 协议?您只需要一个网络驱动器即可用作共享位置。开发人员可以将编译器路径设置为指向该位置,并且在部署的应用程序中,rebel.xml 路径应该指向相同的目录。这样就行了。即使开发人员关闭了他的机器,Weblogic 也会继续运行。

于 2011-03-10T14:28:19.713 回答