1

我试图弄清楚我是否通过使用扭曲的版本号将自己画到了一个角落。

我发布了如下版本:

  • r136
  • r156

在处理 SVN 存储库时。将项目迁移到 github 后,我决定使用 date-stamps 并发布

  • 20150501.1

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

我最近齐心协力,阅读了Maven 版本范围规范 并推送

  • 1.1

我的理解是依赖于

<version>[1.1,)</version>

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

如果我不想更改依赖于旧版本的工件/组名称和有效的孤立代码,我是否承诺继续使用日期戳样式版本?

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

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

4

1 回答 1

2

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

实际上,我会更担心对versions:use-latest-versions. 20150501.1根据您项目的版本历史,默认情况下始终选择该目标。幸运的是,该插件支持excludes可用于解决此问题的指令。

于 2015-10-22T22:39:24.243 回答