增量maven模块版本

增量maven模块版本,maven,maven-3,Maven,Maven 3,我使用maven模块“foo common”。我目前正在使用快照版本控制。我希望,只要这个模块中有任何更改,它的版本就会使用jenkins提供的build number递增,并将其部署到远程存储库中。 但是,问题是,如果我当前的版本是1.0.40-SNAPSHOT,然后如果我想增加主版本,那么版本将变成2.0.41-SNAPSHOT,这没有任何意义。 有人能提出更好的方法吗?maven的想法是使用mvn发布插件将版本从一个快照移动到另一个版本 因此,如果您有(假设您有正确的pom): 这将删除已

我使用maven模块“foo common”。我目前正在使用快照版本控制。我希望,只要这个模块中有任何更改,它的版本就会使用jenkins提供的build number递增,并将其部署到远程存储库中。 但是,问题是,如果我当前的版本是1.0.40-SNAPSHOT,然后如果我想增加主版本,那么版本将变成2.0.41-SNAPSHOT,这没有任何意义。
有人能提出更好的方法吗?

maven的想法是使用mvn发布插件将版本从一个快照移动到另一个版本

因此,如果您有(假设您有正确的pom):

这将删除已发布版本的快照,在您的示例中为1.0.40,然后使用标记在源代码管理中标记此版本,然后将完成的工件推送到标记中定义的发布存储库中,然后将版本移动到下一个快照中,在您的情况下,是1.0.41-SNAPSHOT


如果你想发布一个主要版本,你应该使用mvn版本:set 1.1.0-SNAPSHOT“手动”移动版本。

maven的想法是使用mvn发布插件将版本从一个快照移动到另一个版本

因此,如果您有(假设您有正确的pom):

这将删除已发布版本的快照,在您的示例中为1.0.40,然后使用标记在源代码管理中标记此版本,然后将完成的工件推送到标记中定义的发布存储库中,然后将版本移动到下一个快照中,在您的情况下,是1.0.41-SNAPSHOT


如果你想发布一个主要的版本,那么你应该使用mvn版本:set 1.1.0-SNAPSHOT“手动”移动该版本。

Maven使用两个概念:要么是快照,要么是发布。这些名字很容易引起误解,我会相应地称之为:临时候选人和永久候选人

快照似乎是版本化的,但如果您使用存储库(如Nexus等),您会注意到快照只用于保存最近的几个迭代,旧的快照会很快被删除。此外,下载快照时,很明显,其预期用途是始终使用最新的快照。释放是永久性的;预计将按版本号下载这些版本

版本号不适用于开发人员。它是开发人员、测试人员、部署团队和最终用户之间的通信设备

测试人员报告“要复制此错误:(1)部署版本2.0.44-SNAPSHOT,(2)单击XYZ按钮”是没有意义的。报告在“2.0.44-SNAPSHOT”部分被破坏,因为它不是一个真实的版本号,测试人员应该期望“2.0.44-SNAPSHOT”下面的代码已经更改,现在有完全不同的bug。而且每次重新部署时都会发生变化

预期用途是仅当存在正在进行的对话框时,才向测试人员/用户显示快照。一旦情况明朗,你就可以释放了


詹金斯有一个非常有用的发布插件。它允许更改版本号并执行所有发布任务(包括但不限于maven release pluigin)。

maven使用两个概念:快照或发布。这些名字很容易引起误解,我会相应地称之为:临时候选人和永久候选人

快照似乎是版本化的,但如果您使用存储库(如Nexus等),您会注意到快照只用于保存最近的几个迭代,旧的快照会很快被删除。此外,下载快照时,很明显,其预期用途是始终使用最新的快照。释放是永久性的;预计将按版本号下载这些版本

版本号不适用于开发人员。它是开发人员、测试人员、部署团队和最终用户之间的通信设备

测试人员报告“要复制此错误:(1)部署版本2.0.44-SNAPSHOT,(2)单击XYZ按钮”是没有意义的。报告在“2.0.44-SNAPSHOT”部分被破坏,因为它不是一个真实的版本号,测试人员应该期望“2.0.44-SNAPSHOT”下面的代码已经更改,现在有完全不同的bug。而且每次重新部署时都会发生变化

预期用途是仅当存在正在进行的对话框时,才向测试人员/用户显示快照。一旦情况明朗,你就可以释放了


詹金斯有一个非常有用的发布插件。它允许更改版本号并执行所有发布任务(包括但不限于maven release pluigin)。

目前我正在使用Jenkins Artifactory插件推送快照。如果我使用这个插件,那么我的应用程序将如何从Artifactory下载最新版本?我的意思是,如果artifactory中有foo-common-1.0.10和1.0.11,那么在执行构建时,我的应用程序应该从artifactory@falcon01目前我正在使用Jenkins Artifactory插件来推送快照。如果我使用这个插件,那么我的应用程序将如何从Artifactory下载最新版本?我的意思是,如果artifactory中有foo-common-1.0.10和1.0.11,那么在执行构建时,我的应用程序应该从artifactory@falcon01
mvn release:prepare release:perform