Maven mvn发布:准备进入无休止的周期

Maven mvn发布:准备进入无休止的周期,maven,Maven,我跑 mvn发布:准备一个项目,它是一个多模块构建 我为以下问题输入了“是”: 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:Re

我跑

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

我为以下问题输入了“是”:

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

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

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

mvn --batch-mode release:prepare
release插件的默认行为是每次检测到快照依赖项时都请求确认。如果遵循maven的常见做法,请首先释放快照依赖项,并在释放项目之前更新对依赖项的引用


关于执行非交互式发布有很好的信息

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

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

在我的例子中,子模块中
节中的顶级
groupId
groupId
都是正确的,但是树中的一些模块与其他模块有交叉依赖关系,因此包含在
节中


这些依赖项通过
${project.version}
绑定到项目版本,因此在文本搜索“快照”时很容易丢失它们。由于我忘了重构这些依赖项中的
groupId
s,maven将其视为项目本身之外的“外来”快照依赖项。

它是多模块构建吗?如果是这样,它将为每个子模块询问一次该问题,除非autoVersionSubModules设置为true。我运行了上面的命令,结果是:未能在项目测试api上执行goal org.apache.maven.plugins:maven release plugin:2.0:prepare(默认cli):由于未发布的dencies,无法发布项目:如我所说,这是因为您的项目具有快照依赖关系。如果您遵循maven的常规做法,那么应该首先释放依赖项,更新对它的引用,然后释放code@gerrytan同意您应该首先释放依赖项。但我不认为这是原因。重复的问题是“下一个开发版本?”。我怀疑这是一个多模块构建,包含大量子模块。@SanikaJoshi check maven release:prepare manual:。您可以尝试许多选项,例如
updateDependencies
developmentVersion
等,看看使用这些选项是否有助于解决问题。还请注意自那时起提供的选项版本。其中一些是新引进的