Maven 在mvn发布期间使用mvn版本插件
我在Kubernates有一个多模块maven项目。我们打算将所有这些模块一起进行版本设置。但到目前为止,我在每个模块pom.xml中完成了硬编码版本,如下所示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
<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"
}
}
}
}