Artifactory 查询语言 - 获取工件名称和版本 - 基于组的搜索
Artifactory Query Language - Fetch Artifact Name and Version - Search based on Group
我想使用 AQL 获取特定组下的所有工件名称及其版本。您能否帮助 API 端点和 AQL。
下面的 GET REST API 为我提供了与组 com.load.runners 上的跑步者相关的版本。
但我喜欢从组 com.load.runners.
中获取所有工件及其版本
https:///localhost/artifactory/api/search/versions?g=com.load.runners&a=runner&repos=maven
似乎没有简单且高效的直接方法可以使用 AQL 来做到这一点。
但是-
你可以做的是使用关于 Maven 布局的先验知识(Maven 工件如何存储在存储库中),使用 AQL 查询相关项目(文件),然后提取你需要的信息。
依赖 Maven 布局中的 *.pom
个文件(因为每个工件版本都有一个)(其中 .
被 /
替换):
<groupId>/<artifactId>/<version>/<artifactId>-<version>.pom
例如,工件 com.load.runners:runners:1.0.0
的 .pom
文件的路径将是:
com/load/runners/runner/1.0.0/runner-1.0.0.pom
有了这些知识,您可以运行进行以下查询:
POST /artifactory/api/search/aql
Content-Type: text/plain
items.find({
"repo": "maven",
"path": {
"$match": "com/load/runners/*"
},
"name": {
"$match": "*.pom"
}
}).include("path")
这将 return 所有 .pom
文件的路径,不带文件名。例如:
{
"results": [
{
"path": "com/load/runners/runner/1.0.0"
},
{
"path": "com/load/runners/runner/2.0.0"
},
{
"path": "com/load/runners/other-runner/1.0.0"
},
...
]
}
所以现在,您所要做的就是从这些路径中提取信息 - 由 /
分割,最后一部分是 version
(例如 1.0.0
),前一个是artifactId
(例如runner
),其余的是groupId
,其中所有/
需要替换为.
(例如com.load.runners
).请注意,您需要自行将版本聚合到工件。
我想使用 AQL 获取特定组下的所有工件名称及其版本。您能否帮助 API 端点和 AQL。
下面的 GET REST API 为我提供了与组 com.load.runners 上的跑步者相关的版本。 但我喜欢从组 com.load.runners.
中获取所有工件及其版本https:///localhost/artifactory/api/search/versions?g=com.load.runners&a=runner&repos=maven
似乎没有简单且高效的直接方法可以使用 AQL 来做到这一点。
但是-
你可以做的是使用关于 Maven 布局的先验知识(Maven 工件如何存储在存储库中),使用 AQL 查询相关项目(文件),然后提取你需要的信息。
依赖 Maven 布局中的 *.pom
个文件(因为每个工件版本都有一个)(其中 .
被 /
替换):
<groupId>/<artifactId>/<version>/<artifactId>-<version>.pom
例如,工件 com.load.runners:runners:1.0.0
的 .pom
文件的路径将是:
com/load/runners/runner/1.0.0/runner-1.0.0.pom
有了这些知识,您可以运行进行以下查询:
POST /artifactory/api/search/aql
Content-Type: text/plain
items.find({
"repo": "maven",
"path": {
"$match": "com/load/runners/*"
},
"name": {
"$match": "*.pom"
}
}).include("path")
这将 return 所有 .pom
文件的路径,不带文件名。例如:
{
"results": [
{
"path": "com/load/runners/runner/1.0.0"
},
{
"path": "com/load/runners/runner/2.0.0"
},
{
"path": "com/load/runners/other-runner/1.0.0"
},
...
]
}
所以现在,您所要做的就是从这些路径中提取信息 - 由 /
分割,最后一部分是 version
(例如 1.0.0
),前一个是artifactId
(例如runner
),其余的是groupId
,其中所有/
需要替换为.
(例如com.load.runners
).请注意,您需要自行将版本聚合到工件。