在开发阶段,每一次的代码修改都有可能会产生新的制品。开发人员可能需要依赖方频繁修改版本号来使用最新的版本。这将会非常不利于开发调试,因为如果在生产阶段随意覆盖同一个制品的版本,可能会带来管理上的混乱。让制品拥有唯一的版本号,可以保障同一个版本的制品永远保持相同的行为,这对于部署及应用生命周期管理而言都非常有意义。
CODING 制品库提供了灵活的版本覆盖策略,可以保障 Docker 镜像版本的唯一,也可以重复发布同一个 npm 包的版本。您可以根据需要,针对制品的生命周期,设置仓库/包/版本 的策略。
接下来本文按照这三个层级来介绍如何设置制品版本覆盖策略、以及制品库提供的默认版本覆盖策略。
仓库版本覆盖策略
单击制品库 > 设置仓库。
单击版本策略,此处可设置该仓库下所有制品的版本是否允许覆盖。
说明:
目前 Maven 较为特殊,多了一项:使用 Maven SNAPSHOT(快照)。
包的版本覆盖策略
单击具体包名可看到右侧的包详情页面。
单击设置即可对包的版本策略进行选择,默认情况下包使用本仓库的版本覆盖策略。
默认的版本覆盖策略
制品库按照该制品类型的原生逻辑,提供了默认的版本覆盖策略,详情如下:
制品类型 | 仓库 | 包 | 版本 |
Docker | 允许发布相同版本 | 继承仓库规则 | 未发布 |
Maven | Maven SNAPSHOT | 继承仓库规则 | 未发布 |
npm | 不允许发布相同版本 | 继承仓库规则 | 未发布 |
PyPI | 不允许发布相同版本 | 继承仓库规则 | 未发布 |
Generic | 允许发布相同版本 | 继承仓库规则 | 未发布 |
Helm | 允许发布相同版本 | 继承仓库规则 | 未发布 |
Composer | 不允许发布相同版本 | 继承仓库规则 | 未发布 |
NuGet | 不允许发布相同版本 | 继承仓库规则 | 未发布 |
Conan | 允许发布相同版本 | 继承仓库规则 | 未发布 |