【发布时间】:2011-04-10 23:19:54
【问题描述】:
我正在与我的开发团队一起积极开发代码。当我们向客户发布时,我想提供没有 -SNAPSHOT 的 jar,因此他们只需要在创建新的 dot 版本时进行更新。
这里有一个提供此功能的 maven 插件。我知道这是因为其他人都必须以某种方式做到这一点。我怀疑它是手动的。
我希望答案尽可能明确。
请,谢谢。
【问题讨论】:
标签: maven-2 continuous-integration
我正在与我的开发团队一起积极开发代码。当我们向客户发布时,我想提供没有 -SNAPSHOT 的 jar,因此他们只需要在创建新的 dot 版本时进行更新。
这里有一个提供此功能的 maven 插件。我知道这是因为其他人都必须以某种方式做到这一点。我怀疑它是手动的。
我希望答案尽可能明确。
请,谢谢。
【问题讨论】:
标签: maven-2 continuous-integration
一些插件可以在这里提供帮助,正如this answer 和the comments of this one 中已经提到的那样:Maven Release Plugin 如果您想完全自动化发布和/或Maven Versions Plugin。
使用Maven Release Plugin 发布项目分两步完成:prepare 和perform,以下是文档中关于release:prepare 目标的内容:
准备发布需要经过 以下发布阶段:
- 检查源中没有未提交的更改
- 检查是否没有 SNAPSHOT 依赖项
- 将 POM 中的版本从 x-SNAPSHOT 更改为新版本(您 将提示您输入的版本 使用)
- 转换 POM 中的 SCM 信息以包含最终 标签的目的地
- 针对修改后的 POM 运行项目测试以确认一切正常 工作正常
- 提交修改后的 POM
- 在单片机代码中打上版本名称(会提示 为)
- 将 POM 中的版本添加到新值 y-SNAPSHOT(这些值 也会被提示)
- 提交修改后的 POM
换句话说,Maven Release Plugin 完全按照您的要求进行。
如果您不使用 Maven 发布插件,Maven Versions Plugin 可能会有所帮助。特别是以下目标:
versions:update-parent更新 a 的父部分 项目,以便它引用 最新可用版本。例如, 如果您使用公司根 POM,则此 如果您需要,目标可能会有所帮助 确保您使用的是最新的 公司根 POM 的版本。versions:update-child-modules更新项目子模块的父部分,以便 版本匹配的版本 当前项目。 例如,如果您 有一个聚合器 pom 也是 它的项目的父级 聚合以及子级和父级 版本不同步,这魔力 可以帮助修复孩子的版本 模块。 (请注意,您可能需要调用 带有 -N 选项的 Maven 以 如果你的项目是运行这个目标 坏得无法建造 因为版本不匹配)。versions:set可以用来设置项目版本 命令行。versions:commit删除 pom.xml.versionsBackup 文件。形式 内置“穷人”的一半 单片机”。versions:revert从 pom.xml.versions 备份文件。形式 内置“穷人”的一半 单片机”。
我提到了几个目标,但“最”有趣的可能是versions:update-child-modules。它将允许更改顶级父 pom 中的版本,然后自动更新子级。示例见Fixing a multi-module build。
帮不上忙,您现在需要自己试验一下。祝你好运!
【讨论】: