我正在尝试在多模块 POM 上使用 maven-release-plugin 2.3.2
。 (Maven 3.0.4)release:prepare
工作正常,但 release:perform
因此错误而失败
[INFO] org.apache.maven.lifecycle.MissingProjectException: The goal you specified
requires a project to execute but there is no POM in this directory (...<workspace>/target
/checkout). Please verify you invoked Maven from the correct directory.
现在父 POM 位于此
<workspace>/
内,但在 <workspace>/target/checkout
中没有 POM,因为 target
目录是由插件创建的。我假设这里应该有一个 pom.xml 的副本,它应该由插件创建,这就是错误的原因。我做错了什么?附上目录和 POM 结构。模块 1 和模块 2 在根目录中都有各自的
pom.xmls
。我看过 maven release plugin, git, and the pom's not at the top 、 maven generating pom file 、 Maven 3.0's "mvn release:perform" doesn't like a pom.xml that isn't in its git repo's root directory 。他们没有帮助,因为我的 pom 已经位于 repo 的 (SVN) 根目录中,而插件正在寻找 POM 的这个目录只是临时的,所以我不能/不应该对其进行硬编码。
最佳答案
修复了它.. 父 POM 中标记中的错误路径。来自 khmarbaise 的评论让我想到 SVN=Jenkins workspace=path in 中的路径是它可以工作的唯一方式,这就是它的工作方式。
关于Maven 在此目录中不发布 POM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13874726/