Maven 在mvn发布期间使用mvn版本插件

Maven 在mvn发布期间使用mvn版本插件,maven,kubernetes,maven-release-plugin,maven-versions-plugin,Maven,Kubernetes,Maven Release Plugin,Maven Versions Plugin,我在Kubernates有一个多模块maven项目。我们打算将所有这些模块一起进行版本设置。但到目前为止,我在每个模块pom.xml中完成了硬编码版本,如下所示 <parent> <artifactId>xyz-application</artifactId> <groupId>com.xyz</groupId> <version>2.50.0.g</version> </paren

我在Kubernates有一个多模块maven项目。我们打算将所有这些模块一起进行版本设置。但到目前为止,我在每个模块pom.xml中完成了硬编码版本,如下所示

<parent>
    <artifactId>xyz-application</artifactId>
    <groupId>com.xyz</groupId>
    <version>2.50.0.g</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-Library</artifactId>
<version>2.50.0.g</version>
现在,在发布过程中,我需要更新父pom和所有子模块poms版本,使用我选择的新版本,我可以使用

mvn版本:set-DnewVersion=3.00.0-SNAPSHOT-DprocessAllModules-DgenerateBackupPoms=false,然后 mvn版本:提交-DprocessAllModules 我应该在Jenkins/pom.xml的哪个阶段添加这个?现在,这个插件只有在我想要升级到我选择的特定版本(如3.00.0-Snapshot)时才有用,否则,mvn发行版插件应该自动升级到2.50.1-Snapshot之类的版本。这是正确的理解吗

我如何才能优雅地处理这个pom版本更新问题


提前谢谢

我不明白你为什么想要版本插件

首先,您不需要将标签添加到模块中。您需要指定父级的版本,但可以从父级继承相同的版本


其次,maven release插件有参数releaseVersion和developmentVersion,允许您在命令行上设置版本和未来的开发版本。

在定义MVN\u版本时,我可以这样定义它吗-def MVN_RELEASE=releaseVersion=3.00.0 developmentVersion=3.00.1 RELEASE:clean RELEASE:prepare RELEASE:perform-Dmaven.source.skip=true?为什么RELEASE:clean?为什么是3.00.0而不是3.0.0?除此之外,一个开发可以是一个3.0.1版本的快照…我需要做哪些更改-1。如果我希望mvn发行版自动将版本增加到2.50.1-SNAPSHOT?2.如果我希望mvn release不增加版本并保持其2.50.0,则基本上使用新发布的代码超越现有的2.50.0?发布后您无法覆盖版本。如果我希望mvn release自动将版本增加到2.50.1-SNAPSHOT,我是否应该保留releaseVersion和developmentVersion为空?def MVN_RELEASE=releaseVersion=developmentVersion=RELEASE:clean RELEASE:prepare RELEASE:perform-Dmaven.source.skip=true
<modelVersion>4.0.0</modelVersion>
<groupId>com.xyz</groupId>
<artifactId>xyz-application</artifactId>
<version>2.50.0.g</version>
<packaging>pom</packaging>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.5.3</version>
    <configuration>
        <autoVersionSubmodules>true</autoVersionSubmodules>
        <tagNameFormat>${product_label}-@{project.version}</tagNameFormat>
        <releaseProfiles>releases</releaseProfiles>
        <preparationGoals>clean deploy</preparationGoals>
        <arguments>-s settings.xml</arguments> 
    </configuration>
</plugin>
def MVN_RELEASE = "release:clean release:prepare release:perform -Dmaven.source.skip=true"
stage('Release artifacts to artifactory') {
    steps {
        container('maven') {
            withCredentials() {
                sh "mvn ${MVN_RELEASE}  -Dresume=false"
            }
        }
    }
}