mvn release:准备进入无休止的循环

时间:2013-03-13 02:28:42

标签: maven

我跑了

  

mvn release:为项目做准备,它是一个多模块构建。

我为以下问题输入了yes:

There are still some remaining snapshot dependencies.: Do you want to
resolve them now? (yes/no) no: : yes
Dependency type to resolve,: specify the selection number ( 0:All 1:Project Dependencies 2:Plugins 3:Reports 4:Extensions ): (0/1/2/3) 1: :0
Resolve All Snapshots.: 'com.test:core-api' set to release? (yes/no) yes: : yes
What is the next development version? (0.0.6-SNAPSHOT) 0.0.6-SNAPSHOT: : 1.2.0-SNAPSHOT

并且它在一个无休止的循环中继续问我以下事项。

  

下一个开发版本是什么?

我必须按Ctrl + C退出循环。

2 个答案:

答案 0 :(得分:1)

当我在多模块构建中重构groupId时遇到了同样的问题。

原因正是错误消息所说的,但是发现快照依赖性可能是难以捉摸的。

就我而言,子模块中groupId节中的顶级groupId<parent>都是正确的,但树中的某些模块与其他模块有交叉依赖关系,因此包含在<dependencies><dependencyManagement>节中。

这些依赖项与项目版本相关联,${project.version},因此在“SNAPSHOT”的文本搜索中很容易错过。由于我忘记重构这些依赖项中的groupId,因此maven将其视为项目本身之外的“外部”快照依赖项。

答案 1 :(得分:0)

从过去的经验来看,这不是一个无止境的循环,但需要确认大量的快照依赖关系(因此你会得到一个无限循环的印象)。这通常发生在maven聚合(多模块)项目中。

如果您知道始终接受DEFAULT答案,则可以尝试以批处理模式运行

mvn --batch-mode release:prepare

release插件的默认行为是每次检测到快照依赖项时都要求确认。如果您遵循maven常规做法,请先释放快照依赖项,然后在发布项目之前更新对依赖项的引用。

http://maven.apache.org/maven-release/maven-release-plugin/examples/non-interactive-release.html提供了有关执行非交互式发布的详细信息