使用 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
这应该安装所有传递依赖项
我在 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
这应该安装所有传递依赖项