Maven 是否记得它的状态,以便我可以轻松地重新运行最后一个命令



我正在使用Maven多模块项目。当我运行maven并且其中一个模块失败时,我收到错误消息,然后是以下行

After correcting the problems, you can resume the build with the command
    mvn <goals> -rf :my.module.name

Maven 持有任何状态吗?是否可以运行

  mvn <goal> `start from where we left off`

我问的原因是我的一些模块名称很长。我可以从cmd提示符复制,但我只是想要一个更快/更短的命令。通常节省几秒钟可能看起来不多,但在我使用 maven 的过程中,它可以为我节省很多。

问题是

  • 马文持有状态吗?
  • 如果是这样,我可以从上次中断的地方快速重新运行吗?

谢谢

您可以使用 Maven Shell 在预加载的 shell 环境中执行 maven 目标/阶段,从而显著缩短构建时间。

不,但你可以进入各个模块并构建它们 - 这本质上是 maven 所做的,你只需要以正确的顺序浏览它们,否则你可能会得到令人困惑的结果(即旧的依赖模块构建等)。反应器构建摘要显示 maven 将运行的模块构建顺序,并显示在构建开始时。

最后,您始终需要从父模块进行完整构建,以便构建最终工件。无论如何,从顶部运行通常是最简单的。

不 - 至少根据我的经验,Maven 不保持其状态。 如果您正在运行mvn package,这一点尤其重要。 虽然在多模块项目上运行mvn package可以正常工作(所有模块都可以使用前一个模块的生成工件),但如果构建中断,中途从构建恢复将导致引用以前成功构建的模块时出现未找到工件错误。

解决这个问题有两种方法。 重建所有内容,或使用mvn install要求 maven 安装到本地存储库(如果尚未准备好部署)。 在这种情况下,恢复生成不会失败,因为它会在本地存储库中找到以前生成的模块。

就像个人烦恼一样,在使用-rf标志时,您需要知道模块工件名称。 Maven 将显示名称,该名称可能是也可能不是项目名称。 -rf需要项目名称。

相关内容

最新更新