使用 jfrog-cli 递归下载 nuget 包及其依赖项

Use jfrog-cli to recursively download nuget package along with it's dependencies

我在 Jfrog Artifactory for NuGet 存储库中有以下结构

nuget-virtual-repo
                |__package1.1.0.nupkg
                |__package2.2.0.nupkg
                |__package3.3.0.nupkg

现在 package1.1.0 依赖于 package2.2.0 并在其中提到 nuget.dependency 属性:

nuget.dependency package2:2.0:

package2.2.0 也依赖于 package3.3.0,它在 nuget.dependency 属性 中提到: nuget.dependency package3:3.0:

现在,当我尝试使用 jfrog-cli 下载 package1.1.0 时,它不会同时下载其他依赖包:

jfrog-cli.exe rt dl --apikey=<API_KEY> --url=https://<artifactory_url> --detailed-summary nuget-virtual-repo/package1.1.0.nupkg

输出:

{
  "status": "success",
  "totals": {
    "success": 1,
    "failure": 0
  },
  "files": [
    {
      "source": "https://<artifactory_url>/nuget-virtual-repo/package1.1.0.nupkg",
      "target": "package1.1.0.nupkg"
    }
  ]
}

我也在里面使用 spec 文件,但这里它也只下载 1 个包:

'files': [
                {
                    'target': 'C:\JfrogCli',
                    'pattern': 'nuget-virtual-repo/*',
                    'props': 'nuget.id=package1;nuget.version=1.0',
                    'limit': 1,
                    'sortOrder': 'desc',
                    'sortBy': ['created']
                }
         ]

我想要的是递归下载依赖项,即它应该下载 package2.2.0.nupkg 和 package3.3.0.nupkg。我检查了文档,但没有找到任何标志来执行此操作。有什么我可以在规范文件中更改以下载依赖项而不明确提及它们吗?

你不能只用JFrog cli来替代nuget实现的依赖管理逻辑。

虽然 JFrog cli 可用于在工件上进行身份验证并在解析和上传工件期间收集元数据,但您仍然需要 nuget(或 .net core)客户端与存储库公开的 nuget api 进行交互并通过请求包的依赖关系图

您可以按照此处所述将 JFrog cli 与本机客户端一起使用:https://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-BuildingNuGetPackages

jfrog rt nugetc --server-id-resolve=<artifactoryServerID> --repo-resolve=nuget-virtual-repo

然后

jfrog rt nuget install package1 -Version 1.0

这应该安装所有传递依赖项