如何通过Artifactory API搜索匹配指定POM自定义属性的Maven制品
结论
完全可以,你给出的查询语法是受支持的。
具体说明
Artifactory默认会自动解析所有上传Maven制品的POM文件内容,包括<properties>标签下定义的自定义字段,这些属性会被作为制品的元数据属性存储,统一带pom.前缀,所以可以直接在AQL(Artifactory查询语言)中通过@pom.自定义属性名的方式进行查询。
你示例中的@pom.enabled查询写法完全正确,不过需要注意你贴出的POM示例存在笔误:<enabled>的闭合标签错误写为了</enables>,修正该语法问题后属性就能被正常解析索引。
注意事项
- 请确认对应Maven仓库已开启「Index POM Files」配置,该选项默认是开启状态,若未开启勾选后即可生效。
- 若要查询开启索引前就已经上传的历史制品,对对应仓库执行一次重新索引操作即可抓取所有历史POM的属性到元数据中。
- 你POM中定义的另一个属性
push-to-prod也可以用同样的方式查询,多属性匹配的AQL示例如下:
items.find( { "@pom.enabled" : {"$eq" : "true"}, "@pom.push-to-prod" : {"$eq" : "true"} } )
内容的提问来源于stack exchange,提问作者Stefan Rasmusson
相关产品推荐
相关产品推荐

