【问题标题】:How do I delete all packages with a given version in Sonatype Nexus 3如何在 Sonatype Nexus 3 中删除具有给定版本的所有软件包
【发布时间】:2021-08-04 12:44:41
【问题描述】:

我不想一一选择每个包并删除版本,这非常乏味(可能有 100 个包,但即使是 20 个也很痛苦使用 UI)。

实现这一目标的最简单方法是什么?

我希望我可以从“浏览”的“高级搜索”中执行此操作,但在我转到文件夹树视图之前,我无法看到多选并且无法选择“删除”。

一个任务会很好,但我看到的所有任务都没有过滤

【问题讨论】:

  • 为了上下文,我在这里说的是快照
  • 免责声明:以下链接是我的一位同事的一个项目,由我编写并与他共享但目前无法公开共享的其他 groovy 脚本强烈建议。学习它希望能给你一些想法。它基本上是使用 API 来清理具有各种参数作为入口点的关系存储库。 github.com/benDeMtp/NexusHouseKeeper
  • @Zeitounator 谢谢,我会调查的!太疯狂了,这不是 UI 内置的

标签: nexus sonatype nexus3


【解决方案1】:

您可以通过使用清理策略功能实现此目的。

方法如下:

创建清理策略:

转到管理->存储库->清理策略并单击:

- Create Cleanup Policy

在清理条件中取消全选,然后选择:

- Asset Name Matcher

在文本字段中添加一个正则表达式以满足您的需求。 例如彻底清除 repo:

.*

例如清除maven包“cert-cvc”版本1.4.9的repo:

.*cert-cvc-1.4.9.*

将清理策略附加到您的存储库

编辑您的存储库并添加您刚刚创建的清理策略。

转到管理->系统->任务

 - Select the Cleanup service
 - Click Run

它会立即清理存储库。

完成后,如果您不希望它在下一次计划运行时再次启动,请不要忘记删除清理策略。

【讨论】:

  • 版本是怎么进来的?
  • 只需将版本添加到资产名称匹配器中。类似:.*1.4.9.* 或包含名称:.*cert-cvc-1.4.9.* 然后单击预览以检查您要删除的软件包是否包含在预览列表中。 (我已经用一个例子更新了答案)
猜你喜欢
  • 2017-11-22
  • 2020-02-07
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多