IH
ihub-pub/plugins
A set of Gradle plugins that greatly simplify project management / 一套极大简化项目管理的Gradle插件集
IHub Plugins
一套为 Gradle 项目提供基础设施的插件集,极大简化项目配置
✨ 特性 (Features)
- 📦 开箱即用:零配置即可快速开始,默认配置完全遵循最佳实践。
- 🛠️ 高度可扩展:提供灵活的扩展属性系统,支持多种层级的配置方式。
- 🧩 依赖管理:统一的 BOM 依赖版本管理,彻底告别版本冲突。
- 🌍 多语言支持:原生支持 Java、Groovy、Kotlin 等主流 JVM 语言。
- 🍃 Spring 生态:深度集成 Spring Boot,并原生支持 GraalVM Native 编译。
- 🛡️ 代码质量:内置代码规范检查、测试覆盖率等强有力的验证工具。
- 🚀 发布支持:轻松支持将组件发布到 Maven Central 及 Gradle Plugin Portal。
🧩 插件列表 (Plugins)
IHub 提供了丰富的插件生态,按功能可分为以下几类:
🛠 核心插件
| 插件 ID | 名称 | 类型 | 描述 |
|---|---|---|---|
pub.ihub.plugin.ihub-settings |
Settings | Settings | 插件仓库、版本管理及子项目管理 |
pub.ihub.plugin |
Base | Project | 基础插件,配置组件仓库及扩展属性 |
pub.ihub.plugin.ihub-version |
Version | Project | 依赖版本检查与自动更新 |
pub.ihub.plugin.ihub-profiles |
Profiles | Project | Gradle 版本兼容的 Maven POM Profiles |
🌍 语言支持
| 插件 ID | 名称 | 类型 | 描述 |
|---|---|---|---|
pub.ihub.plugin.ihub-java |
Java | Project | Java 环境配置、默认依赖及兼容性 |
pub.ihub.plugin.ihub-groovy |
Groovy | Project | Groovy 环境配置及组件依赖 |
pub.ihub.plugin.ihub-kotlin |
Kotlin | Project | Kotlin 环境配置 |
📦 依赖与框架
| 插件 ID | 名称 | 类型 | 描述 |
|---|---|---|---|
pub.ihub.plugin.ihub-bom |
BOM | Project | 依赖版本统一管理及兼容性配置 |
pub.ihub.plugin.ihub-boot |
Boot | Project | Spring Boot 插件及 Docker 镜像配置 |
pub.ihub.plugin.ihub-native |
Native | Project | GraalVM Native AOT 编译支持 |
🛡️ 验证、构建与工具
| 插件 ID | 名称 | 类型 | 描述 |
|---|---|---|---|
pub.ihub.plugin.ihub-test |
Test | Project | 测试任务与环境配置 |
pub.ihub.plugin.ihub-verification |
Verification | Project | 代码静态检查、测试覆盖率 |
pub.ihub.plugin.ihub-publish |
Publish | Project | 组件仓库发布配置 |
pub.ihub.plugin.ihub-shadow |
Shadow | Project | 胖包 (Fat JAR) 打包支持 |
pub.ihub.plugin.ihub-javaagent |
Javaagent | Project | Javaagent 动态字节码集成 |
pub.ihub.plugin.ihub-copyright |
Copyright | Project | IDEA 统一版权信息配置 |
pub.ihub.plugin.ihub-git-hooks |
GitHooks | Project | Git 钩子 (Hooks) 自动化配置 |
pub.ihub.plugin.ihub-node |
Node.js | Project | Node.js 及 cnpm 运行支持 |
🚀 快速开始 (Quick Start)
1. 环境要求
| 插件版本 | Java | Gradle |
|---|---|---|
| 1.9.3+ | 17 ~ 25 | 9.3.1 |
| 1.9.1+ | 17 ~ 25 | 9.1.0 |
| 1.9.0 | 17 ~ 24 | 9.0.0 |
| 1.7.6+ | 17 ~ 23 | 8.13 |
| 1.7.2+ | 17 ~ 23 | 8.4 |
| 1.5.6+ | 17 ~ 21 | 8.0 |
2. 引入插件
在 settings.gradle / settings.gradle.kts 中配置 Settings 插件:
plugins {
id 'pub.ihub.plugin.ihub-settings' version '1.9.4'
}在 build.gradle / build.gradle.kts 中应用所需插件(例如基础插件):
plugins {
id 'pub.ihub.plugin'
}3. 基础配置
在根目录的 gradle.properties 中添加所需配置:
# 启用本地 Maven 仓库
iHub.mavenLocalEnabled=true
# 启用阿里云代理仓库 (加速下载)
iHub.mavenAliYunEnabled=true4. 典型使用示例
☕ Java 项目依赖管理
plugins {
id 'pub.ihub.plugin.ihub-java'
}
iHubBom {
importBoms {
group('org.springframework.boot').module('spring-boot-dependencies').version('3.2.0')
}
}🍃 Spring Boot 项目配置
plugins {
id 'pub.ihub.plugin.ihub-boot'
}
iHubBoot {
enabled = true
bootImage {
imageName = 'my-app:latest'
}
}构建时,IHub 将自动配置仓库并输出如下日志,证明插件已成功接管环境:
┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Gradle Project Repos │
├──────────────────────────────────────────────────────────────────────────────────────────────────┤
│ MavenLocal(file:/C:/Users/User/.m2/repository/) │
│ AliYunPublic(https://maven.aliyun.com/repository/public) │
│ MavenRepo │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
📚 更多详细使用方式,请参考 快速上手文档
⚙️ 配置属性 (Configuration)
IHub 支持灵活的属性配置机制,优先级从高到低依次为:
- 系统属性:
-DiHub.property=value - 环境变量:
IHUB_PROPERTY=value - 项目属性:
gradle.properties或命令行-Pproperty=value - 默认值
常用配置项一览:
| 配置项 | 描述 | 默认值 |
|---|---|---|
iHub.mavenLocalEnabled |
是否启用本地仓库缓存 | false |
iHub.mavenAliYunEnabled |
是否启用阿里云镜像代理 | true |
iHub.repoIncludeGroup |
限制从特定仓库拉取的依赖组 | (空) |
🏗️ 项目结构 (Project Structure)
plugins/
├── ihub-base/ # 核心基础设施 (注解, Trait 等)
├── ihub-base-test/ # 测试基础设施 (Spock TestKit)
├── ihub-plugins/ # 核心插件 (仓库、版本管理、Profiles)
├── ihub-settings/ # Settings 插件
├── ihub-bom/ # BOM 依赖管理
├── ihub-java/ # Java 插件
├── ihub-groovy/ # Groovy 插件
├── ihub-kotlin/ # Kotlin 插件
├── ihub-spring/ # Spring Boot 相关插件
├── ihub-verification/ # 验证插件 (测试、CodeNarc 代码质量)
├── ihub-publish/ # 发布插件
├── ihub-shadow/ # Shadow 插件
├── ihub-copyright/ # 版权信息配置插件
├── ihub-githooks/ # Git Hooks 自动化插件
├── ihub-node/ # Node.js 插件
├── ihub-javaagent/ # Javaagent 插件
├── samples/ # 示例项目
└── docs/ # VuePress 文档站点
🛠️ 技术栈与常用命令 (Tech Stack & Commands)
- 开发语言: Groovy 4.0.x
- 构建系统: Gradle 9.x
- 测试框架: Spock 2.4 + Gradle TestKit
- 静态分析: CodeNarc 3.7
# 🔨 构建整个项目
./gradlew build
# 🧪 运行所有测试
./gradlew test
# 🔍 执行代码质量检查 (跳过测试)
./gradlew check -x test
# 💬 检查 Git 提交信息格式
./gradlew commitCheck
# 📦 发布插件到本地 Maven 仓库 (用于本地测试)
./gradlew publishToMavenLocal
# 🧹 清理构建产物
./gradlew clean📚 文档 (Documentation)
📈 项目状态 (Project Status)
🤝 参与贡献 (Contributing)
我们非常欢迎为 IHub Plugins 做出贡献!在提交 PR 前,请务必阅读我们的 贡献指南。
📄 开源协议 (License)
本项目基于 Apache License 2.0 协议开源。