artifactory - 在 Artifactory 中过滤基于属性的搜索

标签 artifactory

我希望使用 Artifactory 属性搜索

https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-ArtifactSearch%28QuickSearch%29

目前,这将拉取 json,列出与我的属性匹配的任何 Artifactory 。

"results" : [
{
    "uri": "http://localhost:8080/artifactory/api/storage/libs-release-local/org/acme/lib/ver/lib-ver.pom"
},{
    "uri": "http://localhost:8080/artifactory/api/storage/libs-release-local/org/acme/lib/ver2/lib-ver2.pom"
}
]

我需要能够过滤我返回的 Artifactory ,因为我只对某个分类器感兴趣。 GAVC 搜索具有 &c=classifier

如果无法通过界面实现,我可以用代码来完成

感谢任何帮助

最佳答案

自从 Artifactory 3.5 中发布 AQL 以来,它现在已成为查找 Artifactory 的官方首选方式。

这是一个与您的需求类似的示例:

items.find
(
    {
            "$and":[
                            {"@license":{"$eq":"GPL"}},
                            {"@version":{"$match":"1.1.*"}},
                            {"name":{"$match":"*.jar"}}
                   ]
    }
)

要在 Artifactory 中运行查询,请将查询复制到文件并将其命名为 aql.query

从包含 aql.query 文件的目录运行以下命令

curl -X POST -uUSER:PASSWORD ' http://HOST:PORT/artifactory/api/search/aql '-Taql.query

不要忘记将模板(用户、密码、主机和端口)替换为实际值。

在示例中 前两个条件用于按属性过滤项目。 第三个标准按 Artifactory 名称过滤项目(在我们的例子中, Artifactory 名称应以 .jar 结尾)

有关如何编写 AQL 查询的更多详细信息,请参阅 AQL


旧答案

目前您无法将特性搜索与 GAVC 搜索结合起来。 所以你有两个选择:

  • 执行其中之一(以提供更精确结果的为准),然后通过脚本过滤客户端上的 JSON 列表
  • 正在写 execution user plugin将使用 the Searches service 执行搜索然后在服务器端过滤结果。

当然,后者更好。

关于artifactory - 在 Artifactory 中过滤基于属性的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765791/

相关文章:

gradle - Artifactory目录包含点,无法使用Gradle 6.5解决依赖关系

java - 如何在 Maven 项目中使用 JFrog Artifact 存储库

artifactory 不要以非法的 repo 名称开头

artifactory - Pip install 为 Artifactory 上传的包返回 "Could not find a version that satisfies requirement"

powershell - Bamboo Powershell任务在首次运行后失败

windows - 从 Windows Powershell 脚本上传到 Artifactory

gradle - Gradle中是否有一种方法可以定义应该(或不应该)通过存储库解决的 Artifactory 模式?

api - 如何为服务帐户生成 API key 或 token ?

java - 无法调试 Artifactory 问题,无法启动,卡住 500 错误

java - 从 Maven for Artifactory 本地下载 Artifact