Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven中的-rf命令不可靠吗?_Maven_Maven 3 - Fatal编程技术网

Maven中的-rf命令不可靠吗?

Maven中的-rf命令不可靠吗?,maven,maven-3,Maven,Maven 3,我正在用Maven3构建一个多模块项目。在一个模块中,它给出了一个“构建失败”,并说在完成我的错误后,我可以使用-rf:moduleName来继续构建。我没有改变任何东西,这次使用-rf:moduleName发出了与maven所说的相同的命令,并成功地构建了它。出现这种情况的可能原因是什么?Maven中的-rf命令不可靠吗?或者您有一个随机失败的非确定性测试,您需要查找原因并修复它 但这只是一个插件maven错误,例如,如果使用目标目录(explorer等),maven clean插件在某些操作

我正在用Maven3构建一个多模块项目。在一个模块中,它给出了一个“构建失败”,并说在完成我的错误后,我可以使用-rf:moduleName来继续构建。我没有改变任何东西,这次使用-rf:moduleName发出了与maven所说的相同的命令,并成功地构建了它。出现这种情况的可能原因是什么?Maven中的-rf命令不可靠吗?

或者您有一个随机失败的非确定性测试,您需要查找原因并修复它

但这只是一个插件maven错误,例如,如果使用目标目录(explorer等),maven clean插件在某些操作系统下可能会失败,并且如果释放锁,在第二次重新执行时可能会工作

您要么拥有快照依赖项和并行构建,要么与其他团队成员(如Nexus或Artifactory)共享maven工件库

例如,如果模块A依赖于B,则在本地构建中,构建链将是“B,然后是A”。如果A不编译,B将被构建并放入本地存储库,但在构建项目A时,完整的构建链将失败

然后,如果使用-rf标志,构建链不会重新编译B,而是从模块A开始构建

但是,假设您有一个连续的部署,比如Teamcity或Jenkins,项目B可以用相同的版本号(快照)重新构建,并放在共享的中央存储库中。在这种情况下,模块A检索模块B的最后一个可用快照,该快照可能不是正确的工件(如果您进行了本地修改),并且A在使用模块B的此代码编译时可能没有错误

您可以通过完全重建链来避免这个问题,也可以通过使用-o标志来避免这个问题,这意味着“脱机”模式(即maven将仅从本地存储库检索工件)


要正确修复它,您应该注意错误并调查特定错误的含义。这是一个编译错误?测试失败?maven插件错误?从阅读错误消息开始,它可能会有所帮助:)

然后您的错误会随机发生;)也许你可以发布stacktrace和你的POM?这发生在两天前,不幸的是,我没有这些文件了。构建持续了40分钟,然后出现了此错误。这有点滥用了我对Maven的信任:)你应该检查日志文件,找出这个问题的根本原因…因为这听起来不像Maven的问题…当然pom文件和错误输出会很有帮助…非常感谢你提供的详细答案。在maven参数中添加-o标志是否总是更安全?当maven插件或新添加的依赖项在本地存储库中不可用时,您需要避免使用-o,因为您已经让maven从中央存储库下载了它,但是当您第一次启动构建时,缺少的依赖项将缓存到本地存储库中。之后,可以使用-o,直到在pom中添加新的依赖项为止