Maven错误:"反应堆项目列表中没有快照项目。"

13

这到底是什么意思?在谷歌上找不到任何帮助。

>  mvn release:prepare
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Base 1.0.5
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-release-plugin:2.3.2:prepare (default-cli) @ base ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.386s
[INFO] Finished at: Tue Oct 08 08:22:46 EST 2013
[INFO] Final Memory: 9M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare (default-cli) on project base: You don't have a SNAPSHOT project in the reactor projects list. -> [Help 1]

你正在运行命令的 pom 的确切“版本”是什么?它可能没有 SNAPSHOT,因此 prepare 无法准备它。 - Daniel Kaplan
5个回答

18

release:prepare命令旨在为发布准备您的快照项目。看起来您没有这样的快照项目。

以下是它将执行的完整详细信息:http://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html

如果您确定应该发布,您应该处理以-SNAPSHOT结尾的Maven模块。

更新:正如评论中@khmarbaise所指出的那样,如果您的发布失败,您应该执行release:rollback返回到先前的状态。但请注意,如果通过Jenkins发布,则不支持jenkins issue),并且不会回滚标记


有时候,由于之前的版本没有完全通过,我最终会陷入这种特殊状态。涉及到三个源代码管理操作: 删除trunk上的“-SNAPSHOT”以进行发布,标记结果,升级trunk为下一个“-SNAPSHOT”版本。如果在第三步之前出现故障,则会陷入此情况。 - Sander Verhagen
1
如果某些事情失败了,您可以执行 release:rollback - khmarbaise

8
不需要手动编辑pom.xml文件,您可以使用"mvn versions:set"进行批量更新,例如:
mvn versions:set -DnewVersion=1.0.3-SNAPSHOT

但这会在本地进行更改,必须提交和推送后才能再次运行“release:prepare”。 - PMorganCA

4

我曾在使用Jenkins时遇到过同样的错误。在之前的一个版本中,Jenkins将POM的版本更新为非快照版本,但由于构建失败,Jenkins无法再将版本设置回-SNAPSHOT版本。之后,进行发布操作会导致上述错误。

修复此问题很容易:只需手动将pom.xml中应用程序的版本更改为-SNAPSHOT版本即可。


1
我知道这是一个老问题,但最近我也遇到了这个问题,并找到了两个解决方案,其他人可能会觉得有用。我正在使用竹子作为我的CI工具。问题在于竹子构建中出现错误,导致竹子处于不正确的状态。它已经在本地更新了我的项目pom.xml与新版本一起发布,但没有将其检入SVN。对我有效的两个解决方案是:
要么
1.删除项目的竹子构建目录并重新运行发布:rm -rf /opt/bamboo-home/xml-data/build-dir/PROJECT_NAME-RELEASE-JOB1
或者
2.从命令行运行maven release,使用以下命令:
mvn release:prepare -DignoreSnapshots -Dresume=false mvn release:perform

0

无需手动更新版本,因为这是耗时的。如果您只需要更改版本,有一个不同的命令可以仅更新pom版本,就像手动更新它们一样:

mvn versions:set -DgenerateBackupPoms=false -DnewVersion=1.0.XX-SNAPSHOT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接