4

假设您正在处理一个运行在某个应用程序服务器上的大项目(比如说 Tomcat,但它也可能是 Jboss、Jetty 或其他)。该项目由几个战争组成,而每个战争都包含很多jar。整个东西是使用 Maven 构建的,构建它需要花费大量时间。

现在,假设开发人员只对一个生成一个小 jar 的模块进行了更改。为了继续工作和测试更改,开发人员需要在相关的战争中替换这个 jar 并重新启动服务器(有时重新部署战争就足够了)。它比重建整个应用程序要快得多。我见过很多开发人员(包括我自己)为此任务创建 shell 脚本。

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

有人知道这样的插件吗?或者可能是关于可以完成相同任务的其他工具?或者有更好的想法怎么做?

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

更新:所以我自己创建了插件。请参阅http://code.google.com/p/replace-file-plugin/任何反馈表示赞赏。

4

4 回答 4

2

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

严肃的人,它摇摆不定。阅读它,它可以做你想做的事。

于 2011-03-25T00:04:07.880 回答
2

Well, any features I asked for in this question, I have implemented myself. See http://code.google.com/p/replace-file-plugin/ I'll appreciate any feedback.

于 2011-03-28T19:21:36.187 回答
0

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

于 2011-03-23T19:59:47.463 回答
0

让我们将范围缩小到一个唯一的战争文件,我认为您可以自己将其扩展到您的场景而不会遇到麻烦。

You may try this option: create a final assembly module which runs fast and combines all dependee modules into one war-file. Then, if you initially do mvn clean package install for the whole build, you'd have to mvn clean package install the changed dependee module and re-run the final assembly module to quickly get grab on the updated war. This is quite stateful build scheme (and thus error prone), but after some getting familiar with this approach to change propagation you'd probably think this is the most simple idea that might work, and work faster.

于 2011-03-28T14:06:14.133 回答