【问题标题】:How to delete artifacts with classifier from Nexus using REST API?如何使用 REST API 从 Nexus 中删除带有分类器的工件?
【发布时间】:2016-03-10 23:38:41
【问题描述】:

我知道如何使用此命令删除整个 GAV:

curl --request DELETE --user "login:password" http://myNexus/service/local/repositories/myRepository/content/myGroupId/myArtifactId/myVersion

它就像一个魅力。

现在我只需要删除一个带有分类器的工件,我无法找到或阅读解决方案。

我想知道是否有办法使用 Nexus REST API 删除带有分类器的工件?

【问题讨论】:

  • 我现在无权访问 Nexus 实例,但您只能删除 Web API 中的一个分类器,这意味着它是可能的。如果您有权登录 Nexus,请手动登录一次,然后使用浏览器的开发工具检查请求的 URL。
  • @JeanneBoyarsky,你叫什么 Web API ?我不明白。
  • @JeanneBoyarsky,你叫什么 Web API ?我不明白。是的,我可以删除一个分类器,我在日志上看到了这个请求:nexus.nuiton.org/nexus/service/local/repositories/… 我可以用 curl 为另一个分类器重播这个请求,但只有工件被删除,而不是所有其他文件关联(*.asc,...)任何关于这个的线索?
  • 这对我来说很完美,我无法访问 GUI,也不想依赖管理员。
  • Web API 是 REST API。这是你发现的。如果您无法在 UI 中删除您想要的内容,那么您将无法在 CURL 中删除。

标签: rest maven nexus sonatype


【解决方案1】:

要删除特定的工件,请使用以下命令:

curl --request DELETE --user "login:password" http://myNexus/service/local/repositories/myRepository/content/myGroupId/myArtifactId/myVersion/myArtifactId-myVersion.jar

然后您需要让 nexus 为 gav 重建元数据(否则 *.md5 和 *.sha1 文件将保留在您的存储库中)

curl -v --request DELETE  --user "login:password"  --silent http://nexusHost/service/local/metadata/repositories/myRepository/content

【讨论】:

  • 对于较大的存储库,通过在 URL 中指定存储库的特定部分来缩小重建的元数据可能很有用。例如:http://nexusHost/service/local/metadata/repositories/myRepository/content/com/myCompany/myProduct/artifactName.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 2013-09-23
  • 2017-01-22
  • 2021-05-12
  • 1970-01-01
  • 2014-09-17
  • 2015-10-31
相关资源
最近更新 更多