假设您正在处理一个大型项目,该项目在某个应用程序服务器上运行(假设是Tomcat,但也可能是Jboss,Jetty或其他)。该项目包括几次战争,而每次战争都包含大量的jar。整个过程都是使用Maven构建的,并且花费很多时间来构建它们。

现在,假设开发人员仅在产生一个小罐子的一个模块中进行了更改。为了继续工作并测试更改,开发人员需要在相关战争中更换该jar并重新启动服务器(有时足以重新部署战争)。这比重建整个应用程序快得多。我已经看到很多开发人员(包括我自己)为此任务创建shell脚本。

但是,如果可以使用maven自动完成,那就更好了。假设运行“ mvn install”时,插件还将转到某个预定义的位置(例如$ {tomcat} / webapps)并搜索myjar.jar的所有外观并将其替换为新版本(我们有多个jar,记得吗? )

有人知道这样的插件吗?还是可能有其他可以完成相同任务的工具?还是更好的主意该怎么做?

更新:顺便说一句,如果找不到解决方案,我可能会自己实施。因此,如果您有兴趣,请告诉我。我需要一些Beta测试人员:)

已更新:所以我自己创建了该插件。请参见 http://code.google.com/p/replace-file-plugin/ 感谢您提供任何反馈意见。

有帮助吗?

解决方案 2

好吧,我在这个问题中要求的任何功能,我都已经实现了。请参见 http://code.google.com/p/replace-file-plugin/ 我将不胜感激。

其他提示

查看 JRebel 。它动摇了,大大减少了开发/部署时间。有30天的免费试用期,请免费查看。我购买了自己的许可证,公司花了数周时间才批准购买它,我等不及了。

男人,它摇摆不定。阅读有关它的信息,它可以做您想要的事情。

如果您可以将脚本编写为Ant构建,则可以使用 Maven Antrun插件以将Ant构建嵌入到您的构建生命周期中。

让我们将范围缩小到一个战争文件,我认为您可以毫无问题地将其扩展到您的情况。

您可以尝试以下选项:创建一个最终组装模块,该模块可以快速运行并将所有受抚养人模块组合到一个war文件中。然后,如果您最初为整个构建进行mvn clean package install,则必须mvn clean package安装更改的Dependee模块,然后重新运行最终的汇编模块,以快速掌握更新的战争。这是一个非常有状态的构建方案(因此容易出错),但是在对这种更改传播方法有所了解之后,您可能会认为这是最简单的方法,它可能会起作用,并且工作更快。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top