Maven中央版编号

时间:2015-10-22 19:21:53

标签: maven maven-central

我想弄清楚我是否已经使用screwy version numbers将自己画成一个角落。

我发布的版本如下:

  • R136
  • R156

在SVN回购中工作。将项目迁移到github后,我决定使用日期戳并发布

  • 20150501.1

因为我没有花时间去理解版本号的含义。

我最近一起行动并阅读了Maven Version Range Specification 并推

  • 1.1

我的理解是依赖

<version>[1.1,)</version>

20150501.1 视为最新版本,而不是最近发布的版本 1.1

如果我不想更改工件/组名并有效地孤立 代码取决于旧版本,我承诺日期戳样式 版本向前发展?

是否存在弃用工件的标准方法?

此工件是一个安全基础架构,因此更多用户可能会对此工件使用[20150501.1,)等开放范围,以便他们快速获取安全关键补丁。

1 个答案:

答案 0 :(得分:2)

版本范围是邪恶的,因为它们使构建不可重复。 [1.1,)是一个特别糟糕的示例,因为它匹配1.12.0,这很可能是源代码彼此不兼容。 [1.1,2.0)更好,但仍可能破坏构建。请注意,最后一个示例实际上会自然地解决您的问题,因为它不匹配20150501.1

我实际上更担心对versions:use-latest-versions的影响,这是理智的人会用来更新最新版本的依赖关系。使用项目的版本历史记录,该目标始终默认选择20150501.1。幸运的是,该插件支持excludes指令,可用于解决此问题。