假设您正在开发一个在某个应用程序服务器上运行的大项目(比如Tomcat,但也可能是Jboss或Jetty或其他)。该项目由几次战争组成,而每场战争都包含大量的罐子。整个事情是使用Maven构建的,需要花费大量的时间来构建它。使用Maven查找并替换一个jar文件
现在,假设开发人员只在一个生成一个小罐子的模块中进行更改。要继续工作并测试更改,开发人员需要在相关战争中替换此jar并重新启动服务器(有时重新部署战争就足够了)。重建整个应用程序要快得多。我见过很多开发者(包括我自己)为这个任务创建shell脚本。
但是,它可能会更好,如果它可以使用maven自动完成。比方说,运行“mvn install”时,插件也会进入一些预定义的位置(例如$ {tomcat}/webapps)并搜索myjar.jar的所有外观并将其替换为新版本(我们有多个jar,请记住? )
有没有人知道这样的插件?或者可能是关于其他一些可以完成相同任务的工具?或者更好的想法如何做到这一点?
更新:顺便说一句,如果我找不到解决方案,我可能会自己实现它。所以,如果你有兴趣,请让我知道。我需要一些beta测试者:)
更新:所以我自己创建了插件。请参阅http://code.google.com/p/replace-file-plugin/任何反馈意见。
看起来像一个非常危险和不可靠的方法。对应用程序内部的一个库进行热替换是违反所有测试原则的(尤其是回归测试) – yegor256 2011-03-24 13:22:34
我不是在谈论测试环境,而是在谈论开发环境。这与哈德森增量构建非常相似 - 它不是取代整晚的构建,而是提供快速反馈。 – Tarlog 2011-03-24 17:27:49
我同意yegor256这不是一个非常可靠的方法,但它听起来像一个单一的壳给我,例如。 G。在'bash'中使用'find'。 – 2011-03-26 12:19:37