0

我跑了

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

我为以下问题输入了是:

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 退出循环。

4

2 回答 2

1

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

原因正是错误消息所说的,但很难发现快照依赖关系。

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

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

于 2013-10-17T11:28:53.970 回答
0

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

如果你知道你总是接受默认答案,你可以尝试在批处理模式下运行它

mvn --batch-mode release:prepare

发布插件的默认行为是在每次检测到快照依赖项时询问确认。如果您遵循 Maven 惯例,请先发布快照依赖项,并在发布项目之前更新对依赖项的引用。

http://maven.apache.org/maven-release/maven-release-plugin/examples/non-interactive-release.html有很好的关于执行非交互式发布的信息

于 2013-03-13T03:35:34.233 回答