GitHunt
IH

ihub-pub/plugins

A set of Gradle plugins that greatly simplify project management / 一套极大简化项目管理的Gradle插件集

IHub IHub Plugins

IHub Plugins

一套为 Gradle 项目提供基础设施的插件集,极大简化项目配置

CII Best Practices Gradle Build Tests CodeFactor Codecov Gradle Plugin

GitHub Stars Gitee Stars License


✨ 特性 (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=true

4. 典型使用示例

☕ 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 支持灵活的属性配置机制,优先级从高到低依次为:

  1. 系统属性-DiHub.property=value
  2. 环境变量IHUB_PROPERTY=value
  3. 项目属性gradle.properties 或命令行 -Pproperty=value
  4. 默认值

常用配置项一览

配置项 描述 默认值
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)

Repobeats analytics image

🤝 参与贡献 (Contributing)

我们非常欢迎为 IHub Plugins 做出贡献!在提交 PR 前,请务必阅读我们的 贡献指南

Contributors

📄 开源协议 (License)

本项目基于 Apache License 2.0 协议开源。