首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Azure devops的Maven父和子pom自动增量版本

使用Azure devops的Maven父和子pom自动增量版本
EN

Stack Overflow用户
提问于 2021-01-05 05:42:14
回答 1查看 1K关注 0票数 0

我有多个构建在JHipster上的微服务,过去使用Maven单独构建。现在,我们有了一个父pom,它将拥有所有可以多次构建的API的所有公共依赖项,并多次部署相同版本的父pom。所有的API都将使用这个作为父pom。问题是,我们在构建过程中使用了Azure DevOps,其中常见的工件被发送到Azure工件,并且版本是不可变的。因此,如果要构建这个父pom并将其打包到Azure工件中,我需要了解以下内容。

  1. 如何根据所做的更改自动递增或不自动递增父pom的版本。(为此,我试图使用maven发布插件并自动增加版本,但是如果有任何最佳实践,请告诉我,我现在使用的是默认值。计划在子pom中使用同样的方法,但不确定这是否是正确的方法)
  2. 如何确保使用此父pom的子项目能够在发布期间自动增加版本。

P.S:早些时候,我们遇到了一个问题,即公共存储库中的任何更改都需要开发人员在构建之前手动完成pom版本,因为Azure工件不允许构建相同的版本并将其部署到工件中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-05 08:24:47

在构建管道运行期间,您可以尝试为父pom和每个子pom的版本生成一个变量。例如:PARENT_PACKAGE_VERSIONCHILD_01_PACKAGE_VERSIONCHILD_02_PACKAGE_VERSION,..。

这些变量可以由一些量和变量(包括自定义变量、预定义变量和一些表达)组合。这样,您几乎可以尽可能自由地设置版本号。

pom.xml文件中,可以使用变量名填充version字段。

在管道中,设置一个shell脚本,使用if条件来确定是否更改变量的值。然后用pom.xml文件中的实际值替换变量名称。

例如:

代码语言:javascript
运行
复制
sed -i 's/PACKAGE_VERSION/$(PACKAGE_VERSION)/g' pom.xml

在完成上述步骤之后,构建并发布Maven包。

对于父pom的版本,为了避免将相同版本号发布到Azure工件所导致的错误,可以使用更多节点设置版本号,例如<MajorVersion>.<MinorVersion>.<BatchVersion>.MajorVersionMinorVersion可能不会经常更改。当父包和/或子包中发生任何更新时,可以更改或自动增加BatchVersion

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65573815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档