跳到主要内容

az-maven

自动收集自 crates/api/az-maven/README.md

Maven Central 搜索 API 客户端,支持多种维度查询、版本检索与制品文件下载。

功能

  • groupIdartifactId、坐标组合、全限定类名、SHA1、标签、关键词搜索制品
  • 查询全部版本(search_all_versions
  • 获取最新版本号(get_latest_version
  • 下载制品文件(download_file
  • 可配置的 HTTP 客户端(超时、User-Agent、默认请求头)

安装

Cargo.toml 中添加:

[dependencies]
az-maven = { path = "../az-maven" } # workspace 内部引用
# 或发布后:
# az-maven = "0.1" # crates.io 引用

用法

use az_maven::{create_maven_central_api, MavenCentralApi, ApiConfig};

// 使用默认配置快速创建客户端
let api = create_maven_central_api().expect("初始化失败");

// 按关键词搜索
let results = api.search_by_keyword("serde", 10).expect("搜索失败");
for artifact in &results {
println!(
"{}:{} v{}",
artifact.group_id,
artifact.artifact_id,
artifact.resolved_version().unwrap_or("unknown"),
);
}

// 获取最新版本号
let version = api
.get_latest_version("com.google.guava", "guava")
.expect("查询失败");
println!("guava 最新版本: {:?}", version);

// 自定义配置
let config = ApiConfig::builder("https://search.maven.org")
.connect_timeout_secs(5)
.build()
.expect("配置无效");
let api = MavenCentralApi::new(config).expect("初始化失败");

依赖的 crates

  • az-music — 复用 HTTP 客户端配置基类(ApiConfig / ApiConfigBuilder
  • reqwest — HTTP 同步客户端
  • serde / serde_json — API 响应反序列化
  • sha2 — SHA256 哈希工具函数
  • thiserror — 错误类型派生