name: maven-search description: 提供全面的指导,用于从Maven中央仓库(https://repo1.maven.org/maven2/)搜索和检索Maven组件。此技能支持按groupId、artifactId、version等坐标搜索,检索组件元数据(POM文件、JARs、源代码、Javadoc),查询版本历史,以及分析依赖。当用户需要查找、验证或检索Maven依赖、检查组件版本、分析依赖树或处理Maven坐标时使用。 license: 完整条款见LICENSE.txt
何时使用此技能
始终使用此技能当用户提及:
- 搜索Maven依赖或组件
- 查找Maven坐标(groupId、artifactId、version)
- 检查组件版本或版本历史
- 检索Maven构件(JAR、POM、源代码、Javadoc)
- 验证Maven依赖坐标
- 分析依赖树或传递依赖
- 处理Maven中央仓库
- 任何与Maven组件、库或依赖相关的请求
触发短语包括:
- “查找 Maven 依赖”(find Maven dependency)、“搜索 Maven 组件”(search Maven component)
- “Maven 坐标”(Maven coordinates)、“groupId”(groupId)、“artifactId”(artifactId)
- “Maven 版本”(Maven version)、“最新版本”(latest version)、“版本历史”(version history)
- “Maven Central”(Maven Central)、“Maven 仓库”(Maven repository)
- “下载 Maven 依赖”(download Maven dependency)、“获取 POM 文件”(get POM file)
- “依赖树”(dependency tree)、“传递依赖”(transitive dependencies)
- 任何提及"Maven"、“dependency”、“artifact”、“repository”、"coordinates"的短语
如何使用此技能
关键:当用户需要从Maven中央仓库搜索、检索或处理Maven组件时,应触发此技能。
触发此技能当您看到:
- 用户说"查找 Maven 依赖"(find Maven dependency)、“搜索 Maven 组件”(search Maven component)
- 用户需要Maven坐标(groupId、artifactId、version)
- 用户想检查组件版本或检索构件
- 用户提及Maven中央仓库或Maven依赖
- 用户需要分析依赖或验证坐标
搜索Maven组件:
-
从用户请求识别搜索类型:
- 按名称搜索 → 使用Maven中央搜索API
- 获取特定版本 → 使用直接仓库URL
- 检查最新版本 → 查询maven-metadata.xml
- 分析依赖 → 解析POM文件
- 下载构件 → 使用直接下载URL
-
从
examples/目录加载适当的示例文件:examples/search-by-name.md- 按名称或关键词搜索组件examples/search-by-coordinates.md- 按groupId和artifactId搜索examples/get-version-info.md- 获取版本信息和历史examples/download-artifact.md- 下载JAR、POM、源代码或Javadocexamples/analyze-dependencies.md- 分析依赖树examples/verify-coordinates.md- 验证Maven坐标有效性
-
遵循该示例文件中的具体说明,包括API端点、参数和最佳实践
-
使用Maven中央仓库API:
搜索API(https://search.maven.org/solrsearch/select):
- 查询参数:
q- 搜索查询(例如,g:com.google.guava AND a:guava) - 行参数:
rows- 结果数量(默认:20,最大:200) - 起始参数:
start- 分页偏移 - 核心参数:
core- 搜索核心(默认:gav)
直接仓库访问(https://repo1.maven.org/maven2/):
- 路径格式:
{groupId}/{artifactId}/{version}/{artifactId}-{version}.{extension} - GroupId路径:将点替换为斜杠(例如,
com.google.guava→com/google/guava) - 元数据:
maven-metadata.xml用于版本信息 - POM文件:
{artifactId}-{version}.pom - JAR文件:
{artifactId}-{version}.jar - 源代码:
{artifactId}-{version}-sources.jar - Javadoc:
{artifactId}-{version}-javadoc.jar
- 查询参数:
-
构造适当的URL:
搜索示例:
https://search.maven.org/solrsearch/select?q=g:com.google.guava+AND+a:guava&rows=20&wt=json直接访问示例:
https://repo1.maven.org/maven2/com/google/guava/guava/maven-metadata.xml https://repo1.maven.org/maven2/com/google/guava/guava/33.0.0/guava-33.0.0.pom https://repo1.maven.org/maven2/com/google/guava/guava/33.0.0/guava-33.0.0.jar -
解析和格式化结果:
- 提取相关信息(groupId、artifactId、version、描述)
- 以标准Maven格式格式化坐标:
groupId:artifactId:version - 以清晰、结构化的格式呈现结果
- 在相关时包括下载链接和元数据
-
验证坐标:
- 验证groupId格式(应为反向域名表示法)
- 检查artifactId格式(应为小写、连字符分隔)
- 验证版本格式(推荐语义版本控制)
- 在提供下载链接前确认构件存在
输出格式要求:
- 始终以标准格式提供Maven坐标:
groupId:artifactId:version - 在相关时包括直接下载URL
- 以清晰的表格或列表格式化搜索结果
- 在可用时提供元数据信息(描述、仓库、最后更新)
- 在查询版本时包括版本信息和发布日期
Maven中央仓库结构
仓库基础URL
- 主要:https://repo1.maven.org/maven2/
- 搜索API:https://search.maven.org/solrsearch/select
- 替代镜像:不同区域可用
路径结构
{groupId}/{artifactId}/{version}/{artifactId}-{version}.{extension}
示例:
com/google/guava/guava/33.0.0/guava-33.0.0.jar
可用构件
- POM:
{artifactId}-{version}.pom- 项目对象模型文件 - JAR:
{artifactId}-{version}.jar- 编译的Java类 - 源代码:
{artifactId}-{version}-sources.jar- 源代码 - Javadoc:
{artifactId}-{version}-javadoc.jar- API文档 - 元数据:
maven-metadata.xml- 版本和发布信息
搜索API参数
查询语法
- GroupId搜索:
g:com.google.guava - ArtifactId搜索:
a:guava - Version搜索:
v:33.0.0 - 组合搜索:
g:com.google.guava AND a:guava - 文本搜索:
guava(在groupId、artifactId和描述中搜索)
响应格式
- JSON:
wt=json(默认) - XML:
wt=xml - Java属性:
wt=javabin
分页
- rows:每页结果数(默认:20,最大:200)
- start:分页偏移(默认:0)
最佳实践
- 始终验证坐标:在使用前检查groupId、artifactId和version是否存在
- 使用最新稳定版本:偏好RELEASE版本而非SNAPSHOT版本
- 检查版本元数据:查询
maven-metadata.xml获取最新版本信息 - 下载前验证:在提供下载链接前验证构件存在
- 包括校验和:在可用时提供SHA-1和MD5校验和以供验证
- 正确格式化坐标:始终使用标准Maven格式
groupId:artifactId:version - 提供上下文:在可用时包括描述、仓库信息和最后更新日期
常见任务
任务1:按名称搜索
使用搜索API和文本查询,按名称或关键词查找组件。
示例:
GET https://search.maven.org/solrsearch/select?q=guava&rows=20&wt=json
任务2:按坐标搜索
使用搜索API和groupId、artifactId查找特定组件。
示例:
GET https://search.maven.org/solrsearch/select?q=g:com.google.guava+AND+a:guava&rows=20&wt=json
任务3:获取版本信息
查询maven-metadata.xml以获取所有可用版本和最新版本。
示例:
GET https://repo1.maven.org/maven2/com/google/guava/guava/maven-metadata.xml
任务4:下载构件
为特定构件构造直接下载URL。
示例:
GET https://repo1.maven.org/maven2/com/google/guava/guava/33.0.0/guava-33.0.0.jar
任务5:分析依赖
下载并解析POM文件以提取依赖信息。
示例:
GET https://repo1.maven.org/maven2/com/google/guava/guava/33.0.0/guava-33.0.0.pom
关键词
英文关键词: maven, maven central, maven repository, maven dependency, maven artifact, maven component, groupId, artifactId, version, coordinates, pom, jar, dependency, repository, search, retrieve, download, metadata, transitive dependencies, dependency tree, maven coordinates, maven search
中文关键词: Maven, Maven中央仓库, Maven仓库, Maven依赖, Maven组件, Maven坐标, groupId, artifactId, version, 版本, 坐标, POM, JAR, 依赖, 仓库, 搜索, 检索, 下载, 元数据, 传递依赖, 依赖树, 查找依赖, 搜索组件, 获取版本, 下载依赖
资源
- Maven中央仓库:https://repo1.maven.org/maven2/
- Maven中央搜索:https://search.maven.org/
- Maven中央搜索API文档:https://central.sonatype.com/search-api/
- Maven坐标指南:https://maven.apache.org/guides/mini/guide-naming-conventions.html