标签: artifactory

使用 JFrogCLI 从 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
Run Code Online (Sandbox Code Playgroud)

据我所知,这在智能存储库上不起作用。

    [Info] Searching items to download...
    [Info] Downloaded 0 artifacts.
Run Code Online (Sandbox Code Playgroud)

我发现的唯一解决方法是首先使用直接下载从 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
Run Code Online (Sandbox Code Playgroud)

我相当确定我错过了一些简单的事情。智能存储库和 jfrog cli,但我找不到简单的答案。欢迎任何反馈。

artifactory jfrog-cli

1
推荐指数
1
解决办法
1728
查看次数

jfrog artifactory CLI 使用从 jar 推断出的设置在 Maven Artifactory 存储库中部署一个 jar

我正在使用 Visual Studio Artifactory 部署程序将 maven 构建的 jar 文件部署到 Artifactory maven 存储库。如果我使用 Maven 工件插件,jar 文件将部署到正确的文件夹结构,并且 maven 设置保持为每个 jar,但如果从 CLI 推送 jar 文件,它只会作为 jar 文件部署到我指定的文件夹。例如

  • 使用 CLI 将 artifact.jar 推送到目标 libs-snapshot/com/foo/bar 获取上传到 libs-snapshot/com/foo/bar 的文件,并且 artifactory 没有有关 jar 版本、组 id 、工件 id 的信息。我在 CLI 上找不到任何选项来指定这些选项。

  • 使用 Maven Artifactory 插件时,推送的 jar 最终会出现在
    libs-snapshot/com/foo/bar/artifact/version 文件夹中,并且 Maven
    属性保持不变

如何从 CLI 实现与 Maven 工件插件相同的行为。

tfs artifactory jfrog-cli

1
推荐指数
1
解决办法
1252
查看次数

Artifactory 可以将工件老化到 S3 吗?

我们部署了 Artifactory 解决方案,我正在尝试弄清楚它是否可以满足我的用例。正常的用例是工件在一周左右的时间内被删除,并且通常可以容纳 X GB 的本地存储,但我们希望能够:

  • 将某些工件保留更长时间,并且由于不经常访问它们,因此将它们存储在 AWS S3 中。
  • 有时工件无法及时清理,因此当本地存储溢出时我们希望突发到云端。

我想我可以做以下事情:

  • X GB 的本地存储库
  • 指向 S3 的存储库
  • 虚拟仓库位于这两者之前
  • 设置一个插件以通过我们的策略从本地->S3 移动工件

但是,我无法弄清楚 Artifactory 中的文件存储是什么,以及如何拥有由不同文件存储支持的两个存储库。

任何人都可以找到文档或任何可以提供帮助的内容吗?我能找到的文档在文件存储和存储库的高级细节方面相当薄弱。

artifactory

1
推荐指数
1
解决办法
480
查看次数

Conda 远程存储库 URL 是否可以与 Artifactory 配合使用?

我的 Artifactory 版本是 6.6.3。

我已经使用 Artifactory 提供的 URL 设置了 Conda 遥控器,该 URL 是:

https://repo.anaconda.com/pkgs/free

但是,当我点击测试时,Artifactory 返回了404错误。

远程 Conda URL 是否错误?

我尝试ping repo.anaconda.com从我的 Artifactory 服务器进行操作,并有响应。

我希望当我单击测试按钮时远程 URL 能够成功连接。

artifactory

1
推荐指数
1
解决办法
846
查看次数

Jenkins 神器插件 - 确定文件不存在

我正在使用 Jenkins Artifactory 插件来发布工件以及下载所需的工件。下载工件时,需要下载的内容是在 Jenkins 管道执行时动态确定的。

如果需要下载的工件不在工件中,我想用相应的错误消息中止管道。不幸的是,我无法弄清楚如何确定文件是否存在。 Artifactory.download如果请求的文件不存在并且不返回任何有意义的信息,则调用不会引发任何异常。

当然,我总是可以在下载后检查文件是否存在,但我希望有一些“本机”的方式。那么,如何在download通话后验证我请求的工件是否已下载?

artifactory jenkins

1
推荐指数
1
解决办法
852
查看次数

maven-metadata.xml 没有在artifactory中自动生成

Artifactory我在( )中设置了一个本地 Maven 存储库artifactory-oss-6.9.1,用于存储一些快照。请看下面的配置

在此输入图像描述

我正在使用 cURL 上传不同的版本 -

curl -u admin:password -T XXX/target/XXX-0.1-SNAPSHOT.zip "http://localhost:8081/artifactory/bahbah/DataProcessing/DataManager/4.0-SNAPSHOT/DataManager-4.0-20110108.100922-4.zip"

curl -u admin:password -T XXX/target/XXX-0.1-SNAPSHOT.zip "http://localhost:8081/artifactory/bahbah/DataProcessing/DataManager/4.0-SNAPSHOT/DataManager-4.0-20110108.100922-5.zip"

curl -u admin:password -T XXX/target/XXX-0.1-SNAPSHOT.zip "http://localhost:8081/artifactory/bahbah/DataProcessing/DataManager/4.0-SNAPSHOT/DataManager-4.0-20110108.100922-6.zip"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

本应自动生成的 maven-metadata.xml 文件并未生成。

请帮忙!

artifactory maven

1
推荐指数
1
解决办法
2905
查看次数

根据它们的年龄删除指定路径下的 artifactory 中的 artifact

我需要为我在 artifactory 中的一个仓库中删除超过特定天数的工件版本。我的意思是,假设我的人工 url 存储库是:-

https://artifactory.mycompany.com/artifactory/myrepo/
Run Code Online (Sandbox Code Playgroud)

在该存储库下,几乎没有名称模式为 abc-*-xyz 的文件夹,这意味着这些文件夹的完全限定路径为:-

https://artifactory.mycompany.com/artifactory/myrepo/abc-1-xyz
https://artifactory.mycompany.com/artifactory/myrepo/abc-2-xyz
https://artifactory.mycompany.com/artifactory/myrepo/abc-3-xyz
Run Code Online (Sandbox Code Playgroud)

现在在这些文件夹中的每一个下都存储了我只想删除的实际版本化工件文件夹,这意味着整个版本文件夹例如两个网址的:-

https://artifactory.mycompany.com/artifactory/myrepo/abc-1-xyz/ver_11
https://artifactory.mycompany.com/artifactory/myrepo/abc-1-xyz/ver_12
https://artifactory.mycompany.com/artifactory/myrepo/abc-2-xyz/ver_3
https://artifactory.mycompany.com/artifactory/myrepo/abc-2-xyz/ver_5
Run Code Online (Sandbox Code Playgroud)
因此,如果这些文件夹 ver_* 超过 30 天,我想将它们删除。只有这些 ver_* 文件夹不是 abc-*-xyz 等

我可以看到下面的 stackoverflow 问题,并且能够使其适用于该用例,但无法为我的用例构建 AQL,因此我可以拥有相应的规范文件,该文件可用于删除我在此处需要的内容。

Artifactory 删除所有超过 6 个月的工件

任何帮助我构建 AQL 文件,然后是可以调用以进行实际删除的规范文件的任何帮助,将一如既往地受到高度赞赏。

artifactory artifactory-query-lang

1
推荐指数
1
解决办法
1197
查看次数

检查文件是否存在于 artifactory 而不下载

我需要检查文件是否存在。到目前为止,我的方法是通过 Artifactory REST API

url = https://artifactory.io/path_to_file/file.jar
headers = {'X-JFrog-Art-Api': 'api_key'}
response = requests.get(url, headers=headers)
assert(200 == response.status_code)
assert(response.text != "")
Run Code Online (Sandbox Code Playgroud)

但是有一个文件太大,而且需要很长时间才能得到响应。

有没有另一种方法来检查这个文件是否存在?

artifactory

1
推荐指数
1
解决办法
1989
查看次数

Gradle 6.2.2 破坏了我的 bintray 发布(工件名称而不是版本号)

自从更新到 gradle 6.2.2 以来,bintray 发布变得疯狂。Bintray 显示工件名称而不是版本号,并且该库无法使用此操作。

在此输入图像描述

有没有人经历过这种情况或知道为什么会发生这种情况?

编辑:切换到 5.6.3 gradle 包装器将按预期上传库(没有工件/版本号命名问题)

artifactory gradle bintray

1
推荐指数
1
解决办法
717
查看次数

保存PDF文件需要选择哪个JFrog存储库?

我想从 python 应用程序在 JFrog 存储库中保存/存储 pdf文件。为此,我在本地系统上安装了 JFrog 社区版本。但是我混淆了需要选择哪个 JFrog 存储库来保存 PDF 文件。

在此处输入图片说明

请指导我。我对此很陌生。

python repository artifactory

1
推荐指数
1
解决办法
102
查看次数