如何在Artifactory上对工件进行版本控制而不覆盖

anat0lius

我正在尝试扩展我们的Jenkins工作(构建整个项目),以将构建的工件部署到我们的Artifactory,但是随后我遇到了一些与工件版本控制相关的问题。如果我尝试重新部署其版本未更改的工件(不是快照),则会得到可以理解的错误403(用户'foo'需要DELETE权限),我不应该替换已经发布的工件。如果工件版本包含-SNAPSHOT,则没有问题,它将始终被上载。我的问题是:我们应该如何处理在Artifactory中锁定覆盖的情况?

  • Jenkins的工件插件是否应该仅在已部署而不是使工作失败的情况下忽略工件的部署?
  • 还是应该始终使用-SNAPSHOT(在开发过程中),即使工件没有更改?
  • 即使工件没有更改,我们是否在每个发行版上都增加版本?
腓特烈堡

Jenkins的工件插件是否应该仅在已部署而不是使工作失败的情况下忽略工件的部署?

如果工件已使用固定版本(非-SNAPSHOT)进行部署,则该作业应失败。例如,在手动作业触发器上,我想知道是否尝试使用已经发布的版本名称(可能是团队中的其他人)进行构建和部署。

还是应该始终使用-SNAPSHOT(在开发过程中),即使工件没有更改?

-SNAPSHOT专为开发而设计。是的,我们通常在构建结束时推送工件,即使它没有发生变化,因为您更新了例如README并触发了作业。

通常,SNAPSHOT的生存期取决于二进制存储库(此处为Artifactory)的配置方式。SNAPSHOT例如可以每2周清洁一次。

Manuel共享的链接还有其他有趣的定义,例如

Usually, only the most recently deployed SNAPSHOT,
for a particular version of an artifact is kept in the artifact repository.
Although the repository can be configured to maintain a rolling archive
with a number of the most recent deployments of a given artifact

https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN401

即使工件没有更改,我们是否在每个发行版上都增加版本?

是的,我们会在每个发行版中增加版本号。我称释放客户会得到什么。除特殊情况外,如果工件没有更改,则不会进行发布过程。发布通常涉及组织中的很多人,甚至包括那些不是来自Development的人。一种流行的标准是使用语义版本控制https://semver.org/有时人们更喜欢使用日期进行版本控制我的建议是使用semver并在工件中包含一个带有构建日期的文件。工件本身可以使用此文件来在运行时告知其版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Linux中对共享库进行版本控制?

如何在根路径上声明Servlet而不覆盖Spring MVC控制器

如何在golang中对软件包进行版本控制?

如何使用publishLocal覆盖本地稳定版本工件?

如何在Artifactory中的新工件上触发Jenkins构建?

如何在Firebase上实施版本控制?

Artifactory REST API:如何找到工件的构建?

如何在捆绑软件中对javascript文件进行版本控制?

VSTS版本管理:按工件来源上的分支进行过滤

如何对对象进行版本控制?

如何在Artifactory中下载最后的工件?

如何在monorepo中对产品进行版本控制?

如何对前端项目进行版本控制?

如何在Bitbucket中进行发布和控制版本

如何对私人jelastic环境进行版本控制

如何在Azure DevOps中指定工件版本名称?

如何使用GIT进行语义版本控制?

如何在程序上命名工件?

版本控制如何在Google上执行操作?

如何在Artifactory上发布模块及其版本,依赖关系和自定义的artifactId

如何在Swift 5.2- Xcode版本11.5上覆盖func watchValueForKeyPath

如何对插件进行版本控制

如何通过Artifactory中的属性区分工件的多个版本?

如何在内置模块上获取覆盖的内置方法的原始版本?

如何在不添加“-”参数的情况下管理工件上文件的版本

如何检测 Maven 工件的发布/快照版本控制?

如何在 Artifactory 中下载附加构建的所有工件?

如何在 Jenkins 上对 Docker 映像进行版本控制并将其传递给 Kubernetes YAML 文件

如何覆盖 Maven 中工件包含的库的默认版本?