【问题标题】:Get the latest version of a node package in Nexus在 Nexus 中获取最新版本的节点包
【发布时间】:2019-10-16 07:32:14
【问题描述】:

我们正在开发一个 Node 和 Angular 5 项目,在该项目中我们使用 Nexus 作为我们应用程序的存储库。该应用程序被转译、打包并上传到 Nexus 存储库。然后我们在 Jenkins 中创建了一个管道,它从 Nexus 下载最新版本的应用程序并执行它。但现在我们遇到了问题。没有调用 Nexus API 来返回最新版本节点包的路径(由 npm publish 生成)。

我们正在拨打的电话如下:

http://HOST-NEXUS/service/rest/v1/search?repository=my-repository&name=my-node-project

但它有一个问题:这个调用只返回前 50 个版本。如果您在存储库中已有超过 50 个版本的应用程序,则不会返回最后一个版本。

所以我想知道你知道有什么方法可以扩展这个 50 个版本的限制吗?或者更好的是,您知道如何直接获取最新版本吗?像这样(这个例子在 Node 中不起作用,但在 Maven 中起作用):

http://HOST-NEXUS/service/rest/v1/search?repository=my-repository&name=my-node-project&version=LATEST

谢谢和最好的问候。

【问题讨论】:

  • 这适用于哪个版本的 NXRM?在 3.16 中添加了对最新的支持。
  • 版本是3.14,一定要更新吗?谢谢
  • 另一方面,我在哪里可以看到调用 Nexus API 并返回最新版本的 Node 包的示例?谢谢
  • 在我的回答中,我提供了一个 JIRA 票的链接,人们在旧版本中遭受了一段时间的痛苦;您也许可以在那里找到解决方法。我还提供了一个发布帖子的链接,其中有一个 Maven 示例,但我怀疑它会相似(存储库、组件、排序顺序)。

标签: node.js npm nexus npm-publish


【解决方案1】:

API 文档:{nexus_url}/service/rest/swagger.json

GET {nexus_url}/service/rest/v1/search?name=project-name&sort=version

【讨论】:

    【解决方案2】:

    NXRM3 在 3.16.0 版本中添加了对通过 REST 下载的“最新”下载的支持。请参阅the JIRA ticket 了解更多信息。

    the release blog 上提供的示例,但可能取决于您的存储库、格式和您要获取的内容。 NXRM3 中还为 REST 提供了一个 Swagger UI,可用于形成您自己的语句。可以在 System -> API 下的管理部分中访问它。 Sonatype 的REST documentation 也可能有帮助。

    【讨论】:

    • 非常感谢,我已将 Nexus 更新到 3.16 版,它已经返回了最后 50 个包的列表(不是第一个包)。问候。
    猜你喜欢
    • 2021-10-12
    • 2013-01-24
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 2015-10-02
    相关资源
    最近更新 更多