在释放时更换pom中的-SNAPSHOT

时间:2010-09-10 22:36:06

标签: maven-2 continuous-integration

我正在与我的开发团队积极开发代码。当我们向客户发布时,我想提供没有-SNAPSHOT的罐子,因此他们只需要在创建新的点版本时进行更新。

这是一个提供此功能的maven插件。我知道有,因为其他人都必须这样做。我怀疑它是手动的。

我希望答案尽可能明确。

请,谢谢你。

1 个答案:

答案 0 :(得分:8)

有些插件可以提供帮助,如this answerthe comments of this one中已提到的:Maven Release Plugin如果要完全自动化发布和/或Maven Versions Plugin

使用Maven Release Plugin

使用Maven Release Plugin发布项目分两步完成:prepareperform以下是文档中有关release:prepare目标的内容:

  

准备发布版即可通过   发布阶段之后:

     
      
  • 检查来源中没有未提交的更改
  •   
  • 检查是否没有SNAPSHOT依赖项
  •   
  • 将POM中的版本从x-SNAPSHOT更改为新版本(您   将提示输入版本   使用)
  •   
  • 转换POM中的SCM信息以包含最终信息   标签的目的地
  •   
  • 针对修改后的POM运行项目测试以确认一切   正常运作
  •   
  • 提交修改后的POM
  •   
  • 使用版本名称标记SCM中的代码(将会提示   对)
  •   
  • 将POM中的版本转换为新值y-SNAPSHOT(这些值   也会被提示)
  •   
  • 提交修改后的POM
  •   

换句话说,Maven Release Plugin正是您所要求的。

使用Maven版本插件

如果您不使用Maven Release Plugin,Maven Versions Plugin可能会有所帮助。特别是,以下目标:

  
      
  • versions:update-parent更新了a的父节   项目,以便它引用   最新版本。例如,   如果你使用企业根POM,这个   如果你需要,目标可能会有所帮助   确保您使用的是最新的   企业根POM的版本。
  •   
  • versions:update-child-modules   更新项目子模块的父节点,以便   版本匹配的版本   当前项目。例如,如果你   有一个聚合器pom也是   它的项目的父项   聚合以及孩子和父母   版本变得不同步,这个mojo   可以帮助修复孩子的版本   模块。 (注意,您可能需要调用   带有-N选项的Maven以便   如果您的项目是,请运行此目标   破碎得太厉害,无法建造   因为版本不匹配)。
  •   
  • versions:set 可用于设置项目版本   命令行。
  •   
  • versions:commit删除了pom.xml.versionsBackup文件。形式   内置的“穷人”的一半   SCM”。
  •   
  • versions:revert从中恢复pom.xml文件   pom.xml.versionsBackup文件。形式   内置的“穷人”的一半   SCM”。
  •   

我提到了几个目标,但“最”有趣的可能是versions:update-child-modules。它将允许更改顶级父pom中的版本,然后自动更新子项。有关示例,请参阅Fixing a multi-module build

无法提供帮助,你现在需要自己试验一下。祝你好运!

参考