首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不覆盖的情况下在Artifactory上验证工件

如何在不覆盖的情况下在Artifactory上验证工件
EN

Stack Overflow用户
提问于 2019-11-15 16:27:05
回答 2查看 651关注 0票数 6

我正在尝试扩展Jenkins作业(它构建了整个项目),以便将构建的工件部署到Artifactory中,但随后我遇到了与工件的版本控制有关的一些问题。如果我试图重新部署一个版本没有改变(而不是快照)的工件,我会得到一个错误403 (用户'foo‘需要删除权限),这是可以理解的,我不应该替换已经发布的工件。如果工件版本包含-SNAPSHOT,那么没有问题,它总是被上传。我的问题是:我们应该如何处理在Artifactory中锁定覆盖的场景?

  • 不应该忽略Jenkins的工件插件,以防工件已经部署,而不是失败吗?
  • 还是应该使用-SNAPSHOT (在开发期间),甚至工件没有更改?
  • ,我们是否在每个版本上都增加了版本,即使工件没有改变?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-06 15:23:24

如果已经部署了工件而不是失败了,那么

不应该忽视Jenkins的工件插件的部署吗?

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

还是应该一直使用-SNAPSHOT (在开发期间),即使工件没有改变?

-SNAPSHOT是为开发而开发的。是的,我们通常在构建结束时推送工件,即使它没有改变,因为您更新了一个自述文件并触发了作业。

通常,快照的生存期取决于您如何配置二进制存储库(这里是Artifactory)。例如,快照可以每两周清理一次。

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

代码语言:javascript
复制
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

,我们是否增加了每个版本的版本,即使工件没有改变?

是的,我们增加了每个版本的版本号。我称之为释放客户会得到什么。除了一个特殊的场合,如果工件没有改变,你就不会经历释放的过程。发布通常涉及到组织中的许多人,甚至不是来自开发部门的人。一个流行的标准是使用语义版本化https://semver.org/,有时人们更喜欢使用日期进行版本。我的建议是使用semver,并在工件中有一个包含构建日期的文件。这个文件可以被工件本身用来在运行时告诉它的版本。

票数 2
EN

Stack Overflow用户

发布于 2019-11-15 16:46:27

您可以使用内部版本号,并且不会覆盖现有版本。相反,buildNumber可以包括一些错误修复/安全修复。

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

如果使用的是深度,则可以使用表达式处理版本。包含buildNumber的确切版本或表达式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58881089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档