首页 文章

问题 - 远程热部署,多模块Maven项目

提问于
浏览
0

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

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

我们有一个多模块maven项目,大约有11个JAR . 依赖于那些内部JAR的是9个WAR文件,其中8个放在EAR文件中 . 剩余的WAR文件作为单独的应用程序单独部署 . 当构建8个WAR文件(驻留在EAR中)时,它们被构建为瘦的WAR文件,因此生成的EAR文件的大小最小,并且APP-INF / lib部分中包含所有依赖项 . 所有这一切都没有问题 . 我们目前部署到具有大量内存和CPU的 remote 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时,它都会通过网络捕获所有.class和配置文件以及JSP文件,因为rebel.xml文件首先获胜,而且这将在VPN上很糟糕 . 在部署完成之后,热部署应该像往常一样工作 . 我只是不希望在第一次启动时通过网络传输所有类的不必要的开销,不仅如此,有时开发人员在办公室,关闭他们的计算机,然后回家 . 那么JRebel / WebLogic会发生什么?

看起来更好的想法只是看看各个maven项目中哪些文件发生了变化,并将它们FTP到服务器上的正确位置,以便JRebel可以做到这一点,完全是服务器端 . 有没有人有一个很好的方法来做到这一点?或者也许某人有一个完全不涉及JRebel的解决方案 . 我们来谈谈 .

3 回答

  • 0

    现在也可以使用JRebel进行远程部署 . 非常容易设置, no need 用于特殊网络配置,打开远程机器上的端口等 .

    http://zeroturnaround.com/jrebel/remoting

    它依赖于IDE插件,但经验就像是在本地计算机上进行开发一样

  • 1

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

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

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

  • 0

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

相关问题