由于RELEASE版本控制在Maven中被弃用,你如何为孙子依赖项快速失败?

时间:2017-11-24 11:55:51

标签: java maven

Maven 2.0允许RELEASE版本控制模型。即,在指定您想要的版本时,您可以说<version>RELEASE<version>,它会为您获取最新版本。

在Maven 3.0中has been dropped。他们给出的原因是您需要确保可重复的构建。但这并没有解决RELEASE首先出现的原因。

RELEASE的目的是在将模块依赖关系链接在一起时,在构建中启用快速失败。如果锁定版本,则在升级版本之前,将无法检测到由于孙子模块更改而导致的未来故障。如果使用LATEST,则会立即检测到孙子模块中的失败更改。

我的问题是:由于在Maven中不推荐使用RELEASE版本,你如何为孙子依赖项快速失败?

1 个答案:

答案 0 :(得分:0)

诀窍是使用Maven 3和Maven Versions Plugin

特别是以下目标可能有用:

  • 版本:use-latest-versions 在pom中搜索所有版本 这是一个较新的版本和 用最新的替换它们 版本
  • 版本:use-latest-releases 在pom中搜索所有非SNAPSHOT 版本较新 释放并替换它们 最新发布版本。
  • 版本:update-properties 更新a中定义的属性 项目,以便他们对应 最新版本的 特定的依赖关系。这可以 如果有一组依赖项很有用 必须全部锁定到一个版本。

还提供了以下其他目标:

  • 版本:display-dependency-updates 扫描项目的依赖项和 制作一份报告 更新的依赖项 版本可用。
  • 版本:display-plugin-updates 扫描项目的插件和 生成这些插件的报告 有更新的版本。
  • 版本:update-parent 更新项目的父部分 它引用了最新的 可用版本。例如,如果 你使用企业根POM,这个 如果你需要,目标可能会有所帮助 确保您使用的是最新的 企业根POM的版本。
  • 版本:update-child-modules 更新了其中的父节 一个项目的子模块所以 版本匹配的版本 当前的项目。例如,如果你 有一个聚合器pom也是 它的项目的父项 聚合和孩子们 父版本不同步,这个 mojo可以帮助修复版本 儿童模块。 (注意你可能需要 使用-N选项调用Maven 如果你的目标是为了实现这个目标 项目如此糟糕,以至于它 由于版本无法构建 错配)。
  • 版本:lock-snapshots 在pom中搜索所有-SNAPSHOT 版本并将其替换为 当前的时间戳版本 -SNAPSHOT,例如-20090327.172306-4
  • 版本:unlock-snapshots 在pom中搜索所有时间戳 锁定快照版本并替换 他们用-SNAPSHOT。
  • 版本:resolve-ranges 使用版本范围查找依赖项 将范围解析为具体 正在使用的版本。
  • 版本:use-releases 在pom中搜索所有-SNAPSHOT版本 已被释放并取代 他们与相应的发布 版本
  • 版本:use-next-releases 在pom中搜索所有非SNAPSHOT 版本较新 释放并替换它们 下一个版本。
  • 版本:use-next-versions 在pom中搜索所有版本 这是一个较新的版本和 用下一个版本替换它们。
  • 版本:commit 删除pom.xml.versionsBackup文件。形式 内置&#34;穷人的一半 SCM&#34;
  • 版本:还原从中恢复pom.xml文件 pom.xml.versionsBackup文件。形式 内置&#34;穷人的一半 SCM&#34;