很抱歉我在这里太傻了,但是我不明白为什么这些工具可以加快构建速度。
例如(如果我理解正确的话),maven-cli需要你做一次构建:清理,编译,安装,然后它通过缓存清理和编译阶段来加速你的构建,所以你可以一遍又一遍地执行安装阶段。
乍一看,这似乎加快了速度,因为它不会一遍又一遍地遍历整个循环。然而,实际上,如果我正在进行代码更改,我不应该总是在运行安装之前重新编译代码吗?在这种情况下,速度如何变得更快?干净的短语可能更快,但对于我的100ish模块项目,清理只需要5秒左右。
那么,我对这些工具完全误解了吗?能给我解释一下这些工具是如何提高速度的吗?谢谢。
mvnsh:http://shell.sonatype.org/faq.html
mvn-cli-插件:http://wiki.github.com/mrdon/maven-cli-plugin/
发布于 2010-08-17 04:05:03
简而言之,这些工具的想法不是为了跳过各个阶段,而是通过将它们缓存到一个可重用的环境中来避免每次构建时初始化JVM、Maven引擎、插件等的成本。
这在这篇Intro to Maven Shell博客文章中总结得很好(可能比常见问题中的更好):
Maven Sonatype发布了一个名为
Shell的实用程序,它允许开发人员在预加载的shell环境中执行maven目标/阶段,从而大大缩短了构建时间。它通过一次加载JVM、Maven和任何加载的插件来实现这一点,并为后续的每个构建利用现有的加载。我下载了.10二进制文件,并使用了一个非常简单的多模块项目。以下是您可以从Maven Shell获得的一些功能的快速入门。
同一篇博客文章提供了一些指标,说明了在一个简单的构建上的改进。
我个人非常喜欢Maven Shell,它真的是一个很棒的工具,并热情地推荐给任何Maven用户。
https://stackoverflow.com/questions/3496103
复制相似问题