【发布时间】:2010-05-10 16:11:11
【问题描述】:
我的 Maven 项目在调用 release:perform 时失败,但 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 想要我做什么?!然后它认为基础目录是 workspace 这意味着找不到工作目录......有什么想法吗?
提前致谢。
编辑:
检查 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?
【问题讨论】:
-
如果没有你的 poms 内容,很难说些什么和分析问题。另一方面,为什么你有这种结构(更深层次的父 pom?) moduleA 是否有用于构建的模块部分?
-
我认为其他 pom 的 parent 处于更深层次的原因是因为我们的项目从 moduleA 开始并从那时起不断发展。
标签: hudson version-control maven maven-release-plugin