如何通过Nexus REST API删除Nexus 3中的GAV

问题描述 投票:1回答:2

有没有办法通过Nexus 3中的REST API删除GAV?从各种谷歌搜索看来,这种功能似乎存在于Nexus 2中,但尚未在Nexus 3中存在。真的吗?

我在目前的Nexus安装中尝试了以下操作,即OSS 3.2.1-01:

我试图删除GAV:

groupId = org.mycompany.myproject
artifactId = myartifact
version = 1.0.0

$ curl --request DELETE --user "USERNAME:PASSWORD" --write-out '%{http_code}\n' http://my-server:8081/service/local/repositories/my-repo/content/org.mycompany.myproject/myartifact/1.0.0

这给了我一个405。

我还查看了3.3到3.5的发行说明,并且没有添加任何REST API支持。

我也调查了https://help.sonatype.com/display/NXRM3/REST+and+Integration+API。我下载了nexus-books-examples并为版本3.2.1-01下载了几个Javadocs(nexus-core,nexus-repository,nexus-common,nexus-script,nexus-commands,nexus-selector)并开始查看通过代码。目前尚不清楚从哪里开始删除GAV的简单程序。

我是否更正你无法通过Nexus 3中的REST API删除GAV?是否有计划在未来的Nexus 3版本中支持此功能?有没有办法通过使用上面的REST +和+ Integration + API链接引用的代码创建Groovy脚本来做我想做的事情?是否有一些示例代码可以帮助我使用上面的代码(3.2.1-01或更新版本的Nexus)。

谢谢。

nexus
2个回答
1
投票

您可以在Nexus Repository 3中查看我们的Beta REST API。升级到大于3.3的版本,最好是3.5(只是为了使用最新和最好的版本)并导航到:

http://nexushostname:nexusport/swagger-ui/

由于REST API目前是Beta版,我们还没有发布文档或大肆吹嘘它,而我们让人们试验它并给我们反馈。

您应该看到删除组件和资产的端点。您可能希望使用组件删除,以便它将清理所有关联的资产。

让我知道你的里程!


0
投票

根据文档,只有当您知道assetId或componentId时,才能删除ASSET(单个文件)或COMPONENT(一组文件,例如jar + md5 + sha1 + pom.xml,表示工件)。

https://help.sonatype.com/repomanager3/rest-and-integration-api/components-api

https://help.sonatype.com/repomanager3/rest-and-integration-api/assets-api

所以你应该发出一个单独的搜索调用,传递GAV并找出componentId,然后在第二次调用中使用componentId删除。

但是我在这里看到https://issues.sonatype.org/browse/NEXUS-11266和这里

https://issues.sonatype.org/browse/NEXUS-11881人们可以通过指定整个路径来删除资产......我试过了

curl -u admin:admin123 -X“DELETE”-w“%{http_code}”http://localhost:8081/repository/deployments/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar

它给了我一个HTTP 204(没有内容)。在我的例子中,“部署”是托管存储库。我在“中心”(aproxy repo)上尝试了相同的命令,我得到了405。

但是,如果我尝试下载整个组件(包括pom,sha1等)

curl -u admin:admin123 -X“DELETE”-w“%{http_code}”http://localhost:8081/repository/deployments/org/apache/commons/commons-compress/1.18/

我得到了一个HTTP 404。

我知道,这很痛苦,在Nexus2中它更容易。

© www.soinside.com 2019 - 2024. All rights reserved.