假设您正在处理一个大型项目,该项目在某个应用程序服务器上运行(比方说Tomcat,但它也可能是Jboss,Jetty或其他东西)。该项目由几场战争组成,而每场战争都包含大量的战争。整个事情是使用Maven构建的,并且需要花费大量时间来构建它。
现在,假设开发人员只在一个生成一个小jar的模块中进行更改。要继续工作并测试更改,开发人员需要在相关的战争中更换此jar并重新启动服务器(有时它足以重新部署战争)。它比重建整个应用程序要快得多。我见过很多开发人员(包括我自己)为这个任务创建shell脚本。
然而,如果可以使用maven自动完成,它可能会更好。让我们说当运行“mvn install”时,插件也将进入某个预定位置(例如$ {tomcat} / webapps)并搜索myjar.jar的所有外观并用新版本替换它们(我们有多个罐子,还记得吗? )
有没有人知道这样的插件?或者可能是关于可以执行相同任务的其他工具?或者更好的想法怎么做?
更新:顺便说一句,如果我找不到解决方案,我可能会自己实施。如果您有兴趣,请告诉我。我需要一些beta测试人员:))
更新:所以我自己创建了这个插件。请参阅http://code.google.com/p/replace-file-plugin/感谢所有反馈。
答案 0 :(得分:2)
结帐JRebel。它摇滚,减少了很多开发/部署时间。有30天免费试用,所以免费检查。我购买了自己的许可证,我公司花了几周时间批准购买它,我等不及了。
Seriosuly男人,它摇滚。阅读它,它可以做你想要的。
答案 1 :(得分:2)
嗯,我在这个问题中要求的任何功能,我已经实现了自己。见http://code.google.com/p/replace-file-plugin/ 我会感激任何反馈。
答案 2 :(得分:0)
如果您可以将脚本编写为Ant构建,则可以使用Maven Antrun plugin在构建生命周期中嵌入Ant构建。
答案 3 :(得分:0)
让我们将范围缩小到一个且只有war文件,我认为你可以毫不费力地将它扩展到你的场景中。
您可以尝试此选项:创建一个快速运行的最终装配模块,并将所有依赖模块组合到一个war文件中。然后,如果您最初为整个构建执行mvn clean package安装,则必须使用mvn clean package安装已更改的dependee模块并重新运行最终的程序集模块以快速获取更新的war。这是一个非常有状态的构建方案(因此容易出错),但是在熟悉这种改变传播的方法之后,你可能会认为这是最简单的想法,它可以工作,并且工作得更快。