Skip to content

ihub-pub/plugins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,518 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 协议开源。

About

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

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors

Languages