Java Maven是否记得它的状态,以便我可以轻松地重新运行最后一个命令?
我正在使用Maven多模块项目。当我运行maven,其中一个模块出现故障时,我会收到错误消息,然后出现以下行Java Maven是否记得它的状态,以便我可以轻松地重新运行最后一个命令?,java,maven,build,maven-3,Java,Maven,Build,Maven 3,我正在使用Maven多模块项目。当我运行maven,其中一个模块出现故障时,我会收到错误消息,然后出现以下行 After correcting the problems, you can resume the build with the command mvn <goals> -rf :my.module.name 纠正问题后,可以使用命令恢复生成 mvn-rf:my.module.name Maven持有任何状态吗?能跑吗 mvn <goal> `st
After correcting the problems, you can resume the build with the command
mvn <goals> -rf :my.module.name
纠正问题后,可以使用命令恢复生成
mvn-rf:my.module.name
Maven持有任何状态吗?能跑吗
mvn <goal> `start from where we left off`
mvn`从我们结束的地方开始`
我问这个问题的原因是我的一些模块名很长。我可以从cmd提示符复制,但我只需要一个更快/更短的命令。通常节省几秒钟似乎并不多,但在我使用maven的过程中,它可以节省我很多
问题是
- maven持有州政府吗
- 如果是这样的话,我可以从我停止的地方快速重新运行吗
谢谢不,但是您可以进入各个模块并构建它们-这本质上是maven所做的,您只需要按照正确的顺序进行,否则您可能会得到令人困惑的结果(即旧的依赖模块构建等)。reactor build summary向您显示maven将执行的模块构建顺序,并在构建开始时显示
但最后,为了构建最终工件,您将始终需要从父模块进行完整构建。不管怎样,从顶层运行通常是最容易的。您可以使用它在预加载的shell环境中执行maven目标/阶段,显著缩短构建时间。否-至少在我的经验中,maven没有保持其状态。如果您正在运行
mvn包
,这一点尤其重要。尽管在多模块项目上运行mvn包
可以正常工作(所有模块都可以使用以前模块生成的工件),但如果构建被中断,在引用以前成功构建的模块时,从构建中途恢复将导致工件未找到错误
有两种方法可以解决这个问题。重建所有内容,或者使用mvn install
要求maven安装到本地repo(如果您还没有准备好部署)。在这种情况下,恢复构建不会失败,因为它会在本地repo中找到以前构建的模块
正如个人所恼怒的,在使用
-rf
标志时,您需要知道模块工件的名称。Maven将向您显示显示名称,该名称可能是工件名称,也可能不是工件名称-rf
需要工件名称。我不知道这样的选项。也许我的构建不会经常失败,从命令行复制/粘贴就足够了?=)在我看来,Maven的信息已经告诉你如何做到这一点。如果您的问题是模块名过长,请编写一个脚本或别名(或使用带有命令历史记录搜索的shell)以使其更简单。您知道在哪里可以下载Maven shell吗?我找到的所有链接都已失效…:(您可以从Maven repo下载,网址为