轻量级 Gradle 依赖管理 CLI
Project description
Zap - 轻量级 Gradle 依赖管理 CLI
Zap 是一个现代化的 Gradle 依赖管理工具,旨在简化 Java/Kotlin 项目中的依赖添加、搜索和管理流程。它通过智能化的版本目录(Version Catalog)管理和 Maven Central 搜索集成,为开发者提供流畅的依赖管理体验。
✨ 特性
- 🚀 智能依赖搜索 - 集成 Maven Central 搜索,支持模糊匹配和版本推荐
- 📋 版本目录管理 - 自动生成和维护
gradle/libs.versions.toml文件 - 🔧 Gradle 构建文件集成 - 自动更新
build.gradle(.kts)文件 - 🎯 内置别名映射 - 常用库的智能别名(Jackson、Gson、OkHttp、Retrofit 等)
- 🌐 镜像源支持 - 支持 Maven Central 和阿里云镜像
- 🎨 现代化 CLI - 基于 Typer 的友好命令行界面,支持富文本输出
- 🔍 模糊搜索匹配 - 支持 artifact 名称和 group 的智能搜索
- 📦 版本管理 - 支持版本引用和集中版本管理
📦 安装
使用 pip 安装
pip install gradle-zap
从源码安装
git clone <repository-url>
cd zap
pip install -e .
开发环境设置
# 克隆项目
git clone <repository-url>
cd zap
# 创建虚拟环境
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# 或
.venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
# 安装项目
pip install -e .
🚀 快速开始
基本用法
# 添加依赖(自动搜索最新版本)
zap add com.fasterxml.jackson.core:jackson-databind
# 使用内置别名快速添加
zap add jackson
# 指定版本添加
zap add com.squareup.okhttp3:okhttp:4.12.0
# 自定义别名
zap add com.google.code.gson:gson --alias google_json
# 搜索依赖
zap search retrofit
# 列出所有依赖
zap list
# 删除依赖
zap rm jackson
镜像源管理
# 查看可用镜像
zap search-mirror list
# 切换到阿里云镜像
zap search-mirror use aliyun
# 恢复默认镜像
zap search-mirror reset
Spring Boot 项目支持
# 添加 Spring Boot 相关依赖
zap spring add web
zap spring add data-jpa
zap spring add security
Ktor 项目支持
# 添加 Ktor 相关依赖
zap ktor add server-core
zap ktor add serialization
zap ktor add auth
📋 命令详解
添加依赖 (add)
zap add <target> [options]
参数说明:
target: 依赖标识,支持多种格式:group:artifact[:version]- 完整的 GAV 坐标artifact[:version]- 仅 artifact 名称(自动搜索 group)alias:version- 已存在别名的版本覆盖
选项:
--alias, -a <name>- 自定义别名--limit, -l <num>- 搜索结果数量限制(默认:20)--force, -f- 强制覆盖已存在的依赖
示例:
zap add jackson # 使用内置别名
zap add okhttp:4.12.0 # 仅指定 artifact 和版本
zap add com.squareup.retrofit2:retrofit # 完整 GAV
zap add gson --alias google_json # 自定义别名
试运行 (try-add)
在不修改文件的情况下预览添加结果:
zap try-add <target> [options]
搜索依赖 (search)
zap search <artifact> [--limit <num>]
删除依赖 (rm)
zap rm <key> [--force]
支持模糊匹配和精确匹配,可以删除 catalog 中的依赖或直接依赖。
列出依赖 (list)
zap list
显示项目中所有的依赖,包括版本目录中的和直接写在构建文件中的。
同步依赖 (sync)
zap sync [--gradlew <path>] [--args <args>]
调用 Gradle Wrapper 触发依赖下载和同步。
🏗️ 项目结构
zap/
├── zap/
│ ├── __init__.py # 包入口和版本信息
│ ├── cli.py # 主要 CLI 命令实现
│ ├── catalog.py # 版本目录管理
│ ├── gradle.py # Gradle 构建文件操作
│ ├── maven.py # Maven Central API 集成
│ ├── config.py # 配置文件管理
│ ├── types.py # 数据类型定义
│ ├── spring.py # Spring Boot 支持
│ └── ktor.py # Ktor 支持
├── main.py # 程序入口
├── pyproject.toml # 项目配置
└── README.md # 项目文档
🔧 核心技术
- CLI 框架: Typer - 现代化的 Python CLI 框架
- 构建工具: Python 3.14+ with setuptools
- 依赖管理: tomlkit (TOML 文件操作), requests (HTTP 请求)
- 富文本输出: rich - 终端富文本和漂亮格式化
- 类型安全: 完整的类型注解支持
🎯 内置别名
Zap 提供常用库的预置别名映射:
| 别名 | 完整坐标 | 说明 |
|---|---|---|
jackson |
com.fasterxml.jackson.core:jackson-databind |
JSON 处理库 |
gson |
com.google.code.gson:gson |
Google JSON 库 |
okhttp |
com.squareup.okhttp3:okhttp |
HTTP 客户端 |
retrofit |
com.squareup.retrofit2:retrofit |
REST 客户端 |
🔍 智能搜索
Zap 的搜索功能支持:
- 精确匹配 - 完全匹配 group、artifact 或别名
- 模糊匹配 - 子字符串匹配,不区分大小写
- 版本推荐 - 基于使用频率和稳定性推荐版本
- 多源搜索 - 支持 Maven Central 和阿里云镜像
⚙️ 配置文件
Zap 使用 .zaprc 文件存储项目级配置:
search_base = "https://maven.aliyun.com/repository/central"
🤝 贡献指南
- Fork 项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
开发建议
- 遵循 PEP 8 编码规范
- 添加完整的类型注解
- 编写单元测试
- 更新文档和 README
📝 许可证
本项目基于 MIT 许可证开源 - 查看 LICENSE 文件了解详情。
🙏 致谢
🔗 相关链接
Zap - 让 Gradle 依赖管理变得简单高效!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gradle_zap-0.1.0.tar.gz.
File metadata
- Download URL: gradle_zap-0.1.0.tar.gz
- Upload date:
- Size: 25.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7db59d22e465017b3e6b1718d1016656a8a562e9cb615b554c96794a957ef2bf
|
|
| MD5 |
29cee9f64fd1b1979b5ce4424d656d73
|
|
| BLAKE2b-256 |
2aa96b15bb53431396d51c3bd2735e367599fb7e6a42fe1fb3eb536707f773d4
|
File details
Details for the file gradle_zap-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gradle_zap-0.1.0-py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7520560ede72f95f8e441e7e9fef075763fccb342b66eaa7069e5e48142f7378
|
|
| MD5 |
f8e31edef0cedeaaebff11c16a2bcd9c
|
|
| BLAKE2b-256 |
ba08df138d29e95208d396b59a815166be3db2bb64a42e53133009c2a0748837
|