在 Nexus 中获取最新版本的节点包

Posted

技术标签:

【中文标题】在 Nexus 中获取最新版本的节点包【英文标题】:Get the latest version of a node package in 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 示例,但我怀疑它会相似(存储库、组件、排序顺序)。 【参考方案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 个包的列表(不是第一个包)。问候。

以上是关于在 Nexus 中获取最新版本的节点包的主要内容,如果未能解决你的问题,请参考以下文章

使用 Nexus rest API 获取给定 groupid/artifactId 的最新工件版本

maven获取最新的快照版本

从 nexus 获取最新的构建工件

如何从带有次要版本的 nexus 安装版本

android 4.4.4通用包下载!

为啥在运行 npm update 时不是所有节点包都更新到最新版本?