我跑了
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退出循环。
答案 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提供了有关执行非交互式发布的详细信息