使用 JFrogCLI 从 Artifactory 上的智能仓库下载工件
Using JFrogCLI to download artifacts from a smart repo on Artifactory
我正在使用 Artifactory 5.2 版,将 maven2 存储库配置为 http://repo1.maven.org 的智能存储库
因此,任何由 maven 或 gradle 启动的构建都将请求 Artifactory 服务器上的依赖项,如果工件尚未缓存,智能仓库将首先从 http://repo1.maven.org 下载文件,然后提供maven / gradle 脚本的内容。
这按预期工作,我不能在这里抱怨。
但是,我还需要直接使用 jfrogcli 下载依赖项,命令如下
jfrog rt dl maven2/com/google/guava/guava-parent/10.0.1/guava-parent-10.0.1.pom
据我所知,这不适用于智能存储库。
[Info] Searching items to download...
[Info] Downloaded 0 artifacts.
我发现的唯一解决方法是首先使用直接下载从 maven2 存储库请求工件,然后使用 jfrog cli 从 maven2-cache 存储库下载它
curl -H ... -X GET <server>/artifactory/maven2/com/google/guava/guava-parent/10.0.1/guava-parent-10.0.1.pom
jfrog rt dl maven2-cache/com/google/guava/guava-parent/10.0.1/guava-parent-10.0.1.pom
我很确定我遗漏了一些简单的东西。智能存储库和 jfrog cli,但我找不到简单的答案。欢迎任何反馈。
这是 JFrog CLI 的一个已知限制,与下载命令的执行方式有关。
目前,CLI 首先使用 AQL(Artifactory 查询语言)查询 Artifactory 以获取应下载的工件列表。当您使用模式下载多个工件时,这非常有用。
但是,AQL 当前不支持查询尚未缓存的工件。这意味着 CLI 不会尝试下载未缓存的文件。
我正在使用 Artifactory 5.2 版,将 maven2 存储库配置为 http://repo1.maven.org 的智能存储库 因此,任何由 maven 或 gradle 启动的构建都将请求 Artifactory 服务器上的依赖项,如果工件尚未缓存,智能仓库将首先从 http://repo1.maven.org 下载文件,然后提供maven / gradle 脚本的内容。 这按预期工作,我不能在这里抱怨。
但是,我还需要直接使用 jfrogcli 下载依赖项,命令如下
jfrog rt dl maven2/com/google/guava/guava-parent/10.0.1/guava-parent-10.0.1.pom
据我所知,这不适用于智能存储库。
[Info] Searching items to download...
[Info] Downloaded 0 artifacts.
我发现的唯一解决方法是首先使用直接下载从 maven2 存储库请求工件,然后使用 jfrog cli 从 maven2-cache 存储库下载它
curl -H ... -X GET <server>/artifactory/maven2/com/google/guava/guava-parent/10.0.1/guava-parent-10.0.1.pom
jfrog rt dl maven2-cache/com/google/guava/guava-parent/10.0.1/guava-parent-10.0.1.pom
我很确定我遗漏了一些简单的东西。智能存储库和 jfrog cli,但我找不到简单的答案。欢迎任何反馈。
这是 JFrog CLI 的一个已知限制,与下载命令的执行方式有关。
目前,CLI 首先使用 AQL(Artifactory 查询语言)查询 Artifactory 以获取应下载的工件列表。当您使用模式下载多个工件时,这非常有用。
但是,AQL 当前不支持查询尚未缓存的工件。这意味着 CLI 不会尝试下载未缓存的文件。