如何强制Sonatype nexus3为maven库重新创建maven-metadata.xml? [英] how to force sonatype nexus 3 to recreate maven-metadata.xml for maven repository?

查看:26
本文介绍了如何强制Sonatype nexus3为maven库重新创建maven-metadata.xml?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用sbt将新构件发布到nexusmaven2存储库(my-maven-repo)。新的瑕疵将出现在Nexuss界面对像。另一个SBT项目使用了这些文物。在使用精确需求时,他会找到这些需求,但在使用范围时,他会获取可用构件的列表,而该列表永远不会是最新的。

我尝试过的方法/变通方法及其结果:

  • 不起作用:使用节点接口-->存储库-->my-maven-repo-->重建索引
  • 不工作curl -v -u user:pass -X DELETE http://my-server/nexus/service/local/metadata/repositories/my-maven-repo/content(错误:此URL不支持HTTP方法Delete)
  • 正在工作正在删除同一存储库中的另一个项目。但这不是一个很好的解决方案;我不想开始删除项目,这将需要管理员权限。

备注:

  • 使用不同的sbt版本进行了测试,这似乎不是sbt问题;请参阅related question
  • Nexus3.4.0-02版
  • 使用beta接口我可以找到新版本(curl -X GET --header 'Accept: application/json' 'http://my-server/nexus/service/siesta/rest/beta/search?repository=my-maven-repo&name=mylib_2.12&version=2.4.0');但如果没有指定确切的版本号,sbt仍然找不到它们。

编辑不完整列表可以使用wget http://my-server/nexus/repository/my-maven-repo/org/company/mylib_2.12/maven-metadata.xml

获取

EDIT2 升级到Nexus3.13未解决问题。

推荐答案

我发现了一种解决方法使用Nexus3.13中提供的新API:

  • (使用Web界面):创建一个新任务以重新创建所有托管的maven存储库(Repair - Rebuild Maven repository metadata (maven-metadata.xml))
  • curl -v -u user:pass -X GET http://my-server/nexus/service/rest/v1/tasks获取此任务的ID
  • curl -v -u user:pass -X POST http://my-server/nexus/service/rest/v1/tasks/c42ab5f5-4bd6-4ed3-b2f1-d061c24a9b90/run触发重新创建所有maven-metadata.xml

缺点:

  • 需要管理员权限
  • sbt publish之后需要额外的步骤以确保maven-metadata.xml是最新的

这篇关于如何强制Sonatype nexus3为maven库重新创建maven-metadata.xml?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆