Artifactory中基于过滤器属性的搜索

Artifactory中基于过滤器属性的搜索,artifactory,Artifactory,我希望使用Artifactory属性搜索 目前,这将提取json,列出与我的属性匹配的任何工件 "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-loc

我希望使用Artifactory属性搜索

目前,这将提取json,列出与我的属性匹配的任何工件

"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"
}
]
我需要能够过滤我得到的工件,因为我只对某个分类器感兴趣。GAVC搜索使用&c=classifier进行此操作

如果无法通过接口实现,我可以用代码实现


自从Artifactory 3.5中发布AQL以来,任何帮助都值得赞赏,现在它是查找工件的官方和首选方式。

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

items.find
(
    {
            "$and":[
                            {"@license":{"$eq":"GPL"}},
                            {"@version":{"$match":"1.1.*"}},
                            {"name":{"$match":"*.jar"}}
                   ]
    }
)
要在Artifactory中运行查询,请将查询复制到一个文件,并将其命名为aql.query

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

curl-X POST-uUSER:密码“”-Taql.query

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

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

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


旧答案

当前无法将属性搜索与GAVC搜索相结合。 所以你有两个选择:

  • 执行其中一个(无论哪个结果更精确),然后通过脚本过滤客户端上的JSON列表
  • 编写一个将通过使用执行搜索,然后在服务器端筛选结果的

当然,后者更好。

谢谢您的回复。如果你最终得到了一个用户插件,欢迎你把它贡献给:)用户插件看起来确实很有趣。不确定这项任务,但会看看它是否适用于其他地方,是的,如果它看起来可能有用,我将与大家分享。谢谢