我有一个在 release:perform 被调用时失败的 maven 项目,尽管 release;prepare 按预期工作。
我发现了错误报告(如下),这似乎与我遇到的问题很相似,但我不完全确定我理解了这个问题: MRELEASE516
我得到的最后几行输出:
[INFO] Executing: cmd.exe /X /C "p4 -d E:\hudson\jobs\myHudsonJob\workspace\target\checkout -p 1.1.1.1:1111: client -d myProjectWorkspace-MavenSCM-E:\hudson\jobs\myHudsonJob\workspace\target\checkout"
[INFO] Executing goals 'deploy'...
[WARNING] Base directory is a file. Using base directory as POM location.
[WARNING] Maven will be executed in interactive mode, but no input stream has been configured for this MavenInvoker instance.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error executing Maven.
Working directory "E:\hudson\jobs\myHudsonJob\workspace\target\checkout\workspace" does not exist!
通过阅读错误报告,错误的可能原因与我的模块结构有关,我试图在下面概述它:
/工作区 | |+ pom.xml (根 pom,其父级是构建 pom, | 调用释放:在这个 pom 上执行) | [模块:模块A和模块B] | |- 模块A |+ pom.xml(父级也是构建 pom) |+ build/pom.xml(构建 pom - 没有自定义父级) |- 模块B |+ pom.xml(父级是构建 pom)
似乎根 pom 应该位于错误中的“工作区”内的某个公共目录中,但尝试过但不起作用,对于我为什么需要它也没有意义。
警告Base directory is a file想要我做什么?!然后它认为基本目录是工作区,这意味着找不到工作目录......有什么想法吗?
提前致谢。
编辑:
检查 SCM 配置后,我觉得一切正常……在每个模块和我拥有的根 pom 中:
<scm>
<connection>
scm:perforce:1.1.1.1:1111://rootToDirectoryContainingRelevantPom
</connection>
<developerConnection>
scm:perforce:1.1.1.1:1111://rootToDirectoryContainingRelevantPom
</developerConnection>
</scm>
编辑2:
也许我打了MRELEASE-261?