Latest commit

History

1,654 Commits

Folders and files

NameName
Last commit message
Last commit date

IHubIHub Plugins

IHub Plugins

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

CII Best PracticesGradle BuildTestsCodeFactorCodecovGradle Plugin

GitHub StarsGitee StarsLicense


✨ 特性 (Features)

  • 📦 开箱即用:零配置即可快速开始,默认配置完全遵循最佳实践。
  • 🛠️ 高度可扩展:提供灵活的扩展属性系统,支持多种层级的配置方式。
  • 🧩 依赖管理:统一的 BOM 依赖版本管理,彻底告别版本冲突。
  • 🌍 多语言支持:原生支持 Java、Groovy、Kotlin 等主流 JVM 语言。
  • 🍃 Spring 生态:深度集成 Spring Boot,并原生支持 GraalVM Native 编译。
  • 🛡️ 代码质量:内置代码规范检查、测试覆盖率等强有力的验证工具。
  • 🚀 发布支持:轻松支持将组件发布到 Maven Central 及 Gradle Plugin Portal。

🧩 插件列表 (Plugins)

IHub 提供了丰富的插件生态,按功能可分为以下几类:

🛠 核心插件

插件 ID名称类型描述
pub.ihub.plugin.ihub-settingsSettingsSettings插件仓库、版本管理及子项目管理
pub.ihub.pluginBaseProject基础插件,配置组件仓库及扩展属性
pub.ihub.plugin.ihub-versionVersionProject依赖版本检查与自动更新
pub.ihub.plugin.ihub-profilesProfilesProjectGradle 版本兼容的 Maven POM Profiles

🌍 语言支持

插件 ID名称类型描述
pub.ihub.plugin.ihub-javaJavaProjectJava 环境配置、默认依赖及兼容性
pub.ihub.plugin.ihub-groovyGroovyProjectGroovy 环境配置及组件依赖
pub.ihub.plugin.ihub-kotlinKotlinProjectKotlin 环境配置

📦 依赖与框架

插件 ID名称类型描述
pub.ihub.plugin.ihub-bomBOMProject依赖版本统一管理及兼容性配置
pub.ihub.plugin.ihub-bootBootProjectSpring Boot 插件及 Docker 镜像配置
pub.ihub.plugin.ihub-nativeNativeProjectGraalVM Native AOT 编译支持

🛡️ 验证、构建与工具

插件 ID名称类型描述
pub.ihub.plugin.ihub-testTestProject测试任务与环境配置
pub.ihub.plugin.ihub-verificationVerificationProject代码静态检查、测试覆盖率
pub.ihub.plugin.ihub-publishPublishProject组件仓库发布配置
pub.ihub.plugin.ihub-shadowShadowProject胖包 (Fat JAR) 打包支持
pub.ihub.plugin.ihub-javaagentJavaagentProjectJavaagent 动态字节码集成
pub.ihub.plugin.ihub-copyrightCopyrightProjectIDEA 统一版权信息配置
pub.ihub.plugin.ihub-git-hooksGitHooksProjectGit 钩子 (Hooks) 自动化配置
pub.ihub.plugin.ihub-nodeNode.jsProjectNode.js 及 cnpm 运行支持
pub.ihub.plugin.ihub-skillsSkillsProjectAI 技能文件自动安装(Claude Code / Copilot / OpenCode)
pub.ihub.plugin.ihub-metaMetaProject项目结构元数据 JSON 生成,供 LLM/AI 工具使用

🚀 快速开始 (Quick Start)

1. 环境要求

插件版本JavaGradle
1.9.5+17 ~ 259.4.1+
1.9.417 ~ 259.3.1+
1.9.317 ~ 259.3.1
1.9.1+17 ~ 259.1.0
1.9.017 ~ 249.0.0
1.7.6+17 ~ 238.13
1.7.2+17 ~ 238.4
1.5.6+17 ~ 218.0

2. 引入插件

settings.gradle / settings.gradle.kts 中配置 Settings 插件:

plugins {
id 'pub.ihub.plugin.ihub-settings' version '1.9.5'
}

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 插件
├── ihub-meta/ # AI 元数据 JSON 生成插件
├── ihub-skills/ # AI 技能文件自动安装插件
├── samples/ # 示例项目
└── docs/ # VuePress 文档站点

🛠️ 技术栈与常用命令 (Tech Stack & Commands)

  • 开发语言: Groovy 4.0.29(@CompileStatic
  • 构建系统: Gradle 9.4.1(wrapper 锁定)
  • 测试框架: Spock 2.4-groovy-4.0 + Gradle TestKit
  • 静态分析: CodeNarc 3.7.0、PMD 7.23.0
  • 覆盖率: JaCoCo 0.8.14(通过 pl.droidsonroids.jacoco.testkit 适配)
  • 代码格式: Spotless 8.4.0
# 🔨 构建整个项目
./gradlew build
# 🧪 运行所有测试
./gradlew test# 🔍 执行代码质量检查 (跳过测试)
./gradlew check -x test# ✨ 应用代码格式与版权头
./gradlew spotlessApply
# 💬 检查 Git 提交信息格式
./gradlew commitCheck
# 📦 发布插件到本地 Maven 仓库 (用于本地测试)
./gradlew publishToMavenLocal
# 🧹 清理构建产物
./gradlew clean

📚 文档 (Documentation)

📈 项目状态 (Project Status)

Repobeats analytics image

🤝 参与贡献 (Contributing)

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

Contributors

📄 开源协议 (License)

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

💝 鸣谢

非常感谢 Jetbrains 对本开源项目的支持。

JetBrains Logo (Main) logo

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

711 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

1,654 Commits

Folders and files

NameName
Last commit message
Last commit date

IHubIHub Plugins

IHub Plugins

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

CII Best PracticesGradle BuildTestsCodeFactorCodecovGradle Plugin

GitHub StarsGitee StarsLicense


✨ 特性 (Features)

  • 📦 开箱即用:零配置即可快速开始,默认配置完全遵循最佳实践。
  • 🛠️ 高度可扩展:提供灵活的扩展属性系统,支持多种层级的配置方式。
  • 🧩 依赖管理:统一的 BOM 依赖版本管理,彻底告别版本冲突。
  • 🌍 多语言支持:原生支持 Java、Groovy、Kotlin 等主流 JVM 语言。
  • 🍃 Spring 生态:深度集成 Spring Boot,并原生支持 GraalVM Native 编译。
  • 🛡️ 代码质量:内置代码规范检查、测试覆盖率等强有力的验证工具。
  • 🚀 发布支持:轻松支持将组件发布到 Maven Central 及 Gradle Plugin Portal。

🧩 插件列表 (Plugins)

IHub 提供了丰富的插件生态,按功能可分为以下几类:

🛠 核心插件

插件 ID名称类型描述
pub.ihub.plugin.ihub-settingsSettingsSettings插件仓库、版本管理及子项目管理
pub.ihub.pluginBaseProject基础插件,配置组件仓库及扩展属性
pub.ihub.plugin.ihub-versionVersionProject依赖版本检查与自动更新
pub.ihub.plugin.ihub-profilesProfilesProjectGradle 版本兼容的 Maven POM Profiles

🌍 语言支持

插件 ID名称类型描述
pub.ihub.plugin.ihub-javaJavaProjectJava 环境配置、默认依赖及兼容性
pub.ihub.plugin.ihub-groovyGroovyProjectGroovy 环境配置及组件依赖
pub.ihub.plugin.ihub-kotlinKotlinProjectKotlin 环境配置

📦 依赖与框架

插件 ID名称类型描述
pub.ihub.plugin.ihub-bomBOMProject依赖版本统一管理及兼容性配置
pub.ihub.plugin.ihub-bootBootProjectSpring Boot 插件及 Docker 镜像配置
pub.ihub.plugin.ihub-nativeNativeProjectGraalVM Native AOT 编译支持

🛡️ 验证、构建与工具

插件 ID名称类型描述
pub.ihub.plugin.ihub-testTestProject测试任务与环境配置
pub.ihub.plugin.ihub-verificationVerificationProject代码静态检查、测试覆盖率
pub.ihub.plugin.ihub-publishPublishProject组件仓库发布配置
pub.ihub.plugin.ihub-shadowShadowProject胖包 (Fat JAR) 打包支持
pub.ihub.plugin.ihub-javaagentJavaagentProjectJavaagent 动态字节码集成
pub.ihub.plugin.ihub-copyrightCopyrightProjectIDEA 统一版权信息配置
pub.ihub.plugin.ihub-git-hooksGitHooksProjectGit 钩子 (Hooks) 自动化配置
pub.ihub.plugin.ihub-nodeNode.jsProjectNode.js 及 cnpm 运行支持
pub.ihub.plugin.ihub-skillsSkillsProjectAI 技能文件自动安装(Claude Code / Copilot / OpenCode)
pub.ihub.plugin.ihub-metaMetaProject项目结构元数据 JSON 生成,供 LLM/AI 工具使用

🚀 快速开始 (Quick Start)

1. 环境要求

插件版本JavaGradle
1.9.5+17 ~ 259.4.1+
1.9.417 ~ 259.3.1+
1.9.317 ~ 259.3.1
1.9.1+17 ~ 259.1.0
1.9.017 ~ 249.0.0
1.7.6+17 ~ 238.13
1.7.2+17 ~ 238.4
1.5.6+17 ~ 218.0

2. 引入插件

settings.gradle / settings.gradle.kts 中配置 Settings 插件:

plugins {
id 'pub.ihub.plugin.ihub-settings' version '1.9.5'
}

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 插件
├── ihub-meta/ # AI 元数据 JSON 生成插件
├── ihub-skills/ # AI 技能文件自动安装插件
├── samples/ # 示例项目
└── docs/ # VuePress 文档站点

🛠️ 技术栈与常用命令 (Tech Stack & Commands)

  • 开发语言: Groovy 4.0.29(@CompileStatic
  • 构建系统: Gradle 9.4.1(wrapper 锁定)
  • 测试框架: Spock 2.4-groovy-4.0 + Gradle TestKit
  • 静态分析: CodeNarc 3.7.0、PMD 7.23.0
  • 覆盖率: JaCoCo 0.8.14(通过 pl.droidsonroids.jacoco.testkit 适配)
  • 代码格式: Spotless 8.4.0
# 🔨 构建整个项目
./gradlew build
# 🧪 运行所有测试
./gradlew test# 🔍 执行代码质量检查 (跳过测试)
./gradlew check -x test# ✨ 应用代码格式与版权头
./gradlew spotlessApply
# 💬 检查 Git 提交信息格式
./gradlew commitCheck
# 📦 发布插件到本地 Maven 仓库 (用于本地测试)
./gradlew publishToMavenLocal
# 🧹 清理构建产物
./gradlew clean

📚 文档 (Documentation)

📈 项目状态 (Project Status)

Repobeats analytics image

🤝 参与贡献 (Contributing)

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

Contributors

📄 开源协议 (License)

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

💝 鸣谢

非常感谢 Jetbrains 对本开源项目的支持。

JetBrains Logo (Main) logo

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

711 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

1,654 Commits

Folders and files

NameName
Last commit message
Last commit date

IHubIHub Plugins

IHub Plugins

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

CII Best PracticesGradle BuildTestsCodeFactorCodecovGradle Plugin

GitHub StarsGitee StarsLicense


✨ 特性 (Features)

  • 📦 开箱即用:零配置即可快速开始,默认配置完全遵循最佳实践。
  • 🛠️ 高度可扩展:提供灵活的扩展属性系统,支持多种层级的配置方式。
  • 🧩 依赖管理:统一的 BOM 依赖版本管理,彻底告别版本冲突。
  • 🌍 多语言支持:原生支持 Java、Groovy、Kotlin 等主流 JVM 语言。
  • 🍃 Spring 生态:深度集成 Spring Boot,并原生支持 GraalVM Native 编译。
  • 🛡️ 代码质量:内置代码规范检查、测试覆盖率等强有力的验证工具。
  • 🚀 发布支持:轻松支持将组件发布到 Maven Central 及 Gradle Plugin Portal。

🧩 插件列表 (Plugins)

IHub 提供了丰富的插件生态,按功能可分为以下几类:

🛠 核心插件

插件 ID名称类型描述
pub.ihub.plugin.ihub-settingsSettingsSettings插件仓库、版本管理及子项目管理
pub.ihub.pluginBaseProject基础插件,配置组件仓库及扩展属性
pub.ihub.plugin.ihub-versionVersionProject依赖版本检查与自动更新
pub.ihub.plugin.ihub-profilesProfilesProjectGradle 版本兼容的 Maven POM Profiles

🌍 语言支持

插件 ID名称类型描述
pub.ihub.plugin.ihub-javaJavaProjectJava 环境配置、默认依赖及兼容性
pub.ihub.plugin.ihub-groovyGroovyProjectGroovy 环境配置及组件依赖
pub.ihub.plugin.ihub-kotlinKotlinProjectKotlin 环境配置

📦 依赖与框架

插件 ID名称类型描述
pub.ihub.plugin.ihub-bomBOMProject依赖版本统一管理及兼容性配置
pub.ihub.plugin.ihub-bootBootProjectSpring Boot 插件及 Docker 镜像配置
pub.ihub.plugin.ihub-nativeNativeProjectGraalVM Native AOT 编译支持

🛡️ 验证、构建与工具

插件 ID名称类型描述
pub.ihub.plugin.ihub-testTestProject测试任务与环境配置
pub.ihub.plugin.ihub-verificationVerificationProject代码静态检查、测试覆盖率
pub.ihub.plugin.ihub-publishPublishProject组件仓库发布配置
pub.ihub.plugin.ihub-shadowShadowProject胖包 (Fat JAR) 打包支持
pub.ihub.plugin.ihub-javaagentJavaagentProjectJavaagent 动态字节码集成
pub.ihub.plugin.ihub-copyrightCopyrightProjectIDEA 统一版权信息配置
pub.ihub.plugin.ihub-git-hooksGitHooksProjectGit 钩子 (Hooks) 自动化配置
pub.ihub.plugin.ihub-nodeNode.jsProjectNode.js 及 cnpm 运行支持
pub.ihub.plugin.ihub-skillsSkillsProjectAI 技能文件自动安装(Claude Code / Copilot / OpenCode)
pub.ihub.plugin.ihub-metaMetaProject项目结构元数据 JSON 生成,供 LLM/AI 工具使用

🚀 快速开始 (Quick Start)

1. 环境要求

插件版本JavaGradle
1.9.5+17 ~ 259.4.1+
1.9.417 ~ 259.3.1+
1.9.317 ~ 259.3.1
1.9.1+17 ~ 259.1.0
1.9.017 ~ 249.0.0
1.7.6+17 ~ 238.13
1.7.2+17 ~ 238.4
1.5.6+17 ~ 218.0

2. 引入插件

settings.gradle / settings.gradle.kts 中配置 Settings 插件:

plugins {
id 'pub.ihub.plugin.ihub-settings' version '1.9.5'
}

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 插件
├── ihub-meta/ # AI 元数据 JSON 生成插件
├── ihub-skills/ # AI 技能文件自动安装插件
├── samples/ # 示例项目
└── docs/ # VuePress 文档站点

🛠️ 技术栈与常用命令 (Tech Stack & Commands)

  • 开发语言: Groovy 4.0.29(@CompileStatic
  • 构建系统: Gradle 9.4.1(wrapper 锁定)
  • 测试框架: Spock 2.4-groovy-4.0 + Gradle TestKit
  • 静态分析: CodeNarc 3.7.0、PMD 7.23.0
  • 覆盖率: JaCoCo 0.8.14(通过 pl.droidsonroids.jacoco.testkit 适配)
  • 代码格式: Spotless 8.4.0
# 🔨 构建整个项目
./gradlew build
# 🧪 运行所有测试
./gradlew test# 🔍 执行代码质量检查 (跳过测试)
./gradlew check -x test# ✨ 应用代码格式与版权头
./gradlew spotlessApply
# 💬 检查 Git 提交信息格式
./gradlew commitCheck
# 📦 发布插件到本地 Maven 仓库 (用于本地测试)
./gradlew publishToMavenLocal
# 🧹 清理构建产物
./gradlew clean

📚 文档 (Documentation)

📈 项目状态 (Project Status)

Repobeats analytics image

🤝 参与贡献 (Contributing)

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

Contributors

📄 开源协议 (License)

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

💝 鸣谢

非常感谢 Jetbrains 对本开源项目的支持。

JetBrains Logo (Main) logo

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

711 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

1,654 Commits

Folders and files

NameName
Last commit message
Last commit date

IHubIHub Plugins

IHub Plugins

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

CII Best PracticesGradle BuildTestsCodeFactorCodecovGradle Plugin

GitHub StarsGitee StarsLicense


✨ 特性 (Features)

  • 📦 开箱即用:零配置即可快速开始,默认配置完全遵循最佳实践。
  • 🛠️ 高度可扩展:提供灵活的扩展属性系统,支持多种层级的配置方式。
  • 🧩 依赖管理:统一的 BOM 依赖版本管理,彻底告别版本冲突。
  • 🌍 多语言支持:原生支持 Java、Groovy、Kotlin 等主流 JVM 语言。
  • 🍃 Spring 生态:深度集成 Spring Boot,并原生支持 GraalVM Native 编译。
  • 🛡️ 代码质量:内置代码规范检查、测试覆盖率等强有力的验证工具。
  • 🚀 发布支持:轻松支持将组件发布到 Maven Central 及 Gradle Plugin Portal。

🧩 插件列表 (Plugins)

IHub 提供了丰富的插件生态,按功能可分为以下几类:

🛠 核心插件

插件 ID名称类型描述
pub.ihub.plugin.ihub-settingsSettingsSettings插件仓库、版本管理及子项目管理
pub.ihub.pluginBaseProject基础插件,配置组件仓库及扩展属性
pub.ihub.plugin.ihub-versionVersionProject依赖版本检查与自动更新
pub.ihub.plugin.ihub-profilesProfilesProjectGradle 版本兼容的 Maven POM Profiles

🌍 语言支持

插件 ID名称类型描述
pub.ihub.plugin.ihub-javaJavaProjectJava 环境配置、默认依赖及兼容性
pub.ihub.plugin.ihub-groovyGroovyProjectGroovy 环境配置及组件依赖
pub.ihub.plugin.ihub-kotlinKotlinProjectKotlin 环境配置

📦 依赖与框架

插件 ID名称类型描述
pub.ihub.plugin.ihub-bomBOMProject依赖版本统一管理及兼容性配置
pub.ihub.plugin.ihub-bootBootProjectSpring Boot 插件及 Docker 镜像配置
pub.ihub.plugin.ihub-nativeNativeProjectGraalVM Native AOT 编译支持

🛡️ 验证、构建与工具

插件 ID名称类型描述
pub.ihub.plugin.ihub-testTestProject测试任务与环境配置
pub.ihub.plugin.ihub-verificationVerificationProject代码静态检查、测试覆盖率
pub.ihub.plugin.ihub-publishPublishProject组件仓库发布配置
pub.ihub.plugin.ihub-shadowShadowProject胖包 (Fat JAR) 打包支持
pub.ihub.plugin.ihub-javaagentJavaagentProjectJavaagent 动态字节码集成
pub.ihub.plugin.ihub-copyrightCopyrightProjectIDEA 统一版权信息配置
pub.ihub.plugin.ihub-git-hooksGitHooksProjectGit 钩子 (Hooks) 自动化配置
pub.ihub.plugin.ihub-nodeNode.jsProjectNode.js 及 cnpm 运行支持
pub.ihub.plugin.ihub-skillsSkillsProjectAI 技能文件自动安装(Claude Code / Copilot / OpenCode)
pub.ihub.plugin.ihub-metaMetaProject项目结构元数据 JSON 生成,供 LLM/AI 工具使用

🚀 快速开始 (Quick Start)

1. 环境要求

插件版本JavaGradle
1.9.5+17 ~ 259.4.1+
1.9.417 ~ 259.3.1+
1.9.317 ~ 259.3.1
1.9.1+17 ~ 259.1.0
1.9.017 ~ 249.0.0
1.7.6+17 ~ 238.13
1.7.2+17 ~ 238.4
1.5.6+17 ~ 218.0

2. 引入插件

settings.gradle / settings.gradle.kts 中配置 Settings 插件:

plugins {
id 'pub.ihub.plugin.ihub-settings' version '1.9.5'
}

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 插件
├── ihub-meta/ # AI 元数据 JSON 生成插件
├── ihub-skills/ # AI 技能文件自动安装插件
├── samples/ # 示例项目
└── docs/ # VuePress 文档站点

🛠️ 技术栈与常用命令 (Tech Stack & Commands)

  • 开发语言: Groovy 4.0.29(@CompileStatic
  • 构建系统: Gradle 9.4.1(wrapper 锁定)
  • 测试框架: Spock 2.4-groovy-4.0 + Gradle TestKit
  • 静态分析: CodeNarc 3.7.0、PMD 7.23.0
  • 覆盖率: JaCoCo 0.8.14(通过 pl.droidsonroids.jacoco.testkit 适配)
  • 代码格式: Spotless 8.4.0
# 🔨 构建整个项目
./gradlew build
# 🧪 运行所有测试
./gradlew test# 🔍 执行代码质量检查 (跳过测试)
./gradlew check -x test# ✨ 应用代码格式与版权头
./gradlew spotlessApply
# 💬 检查 Git 提交信息格式
./gradlew commitCheck
# 📦 发布插件到本地 Maven 仓库 (用于本地测试)
./gradlew publishToMavenLocal
# 🧹 清理构建产物
./gradlew clean

📚 文档 (Documentation)

📈 项目状态 (Project Status)

Repobeats analytics image

🤝 参与贡献 (Contributing)

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

Contributors

📄 开源协议 (License)

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

💝 鸣谢

非常感谢 Jetbrains 对本开源项目的支持。

JetBrains Logo (Main) logo

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

711 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

1,654 Commits

Folders and files

NameName
Last commit message
Last commit date

IHubIHub Plugins

IHub Plugins

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

CII Best PracticesGradle BuildTestsCodeFactorCodecovGradle Plugin

GitHub StarsGitee StarsLicense


✨ 特性 (Features)

  • 📦 开箱即用:零配置即可快速开始,默认配置完全遵循最佳实践。
  • 🛠️ 高度可扩展:提供灵活的扩展属性系统,支持多种层级的配置方式。
  • 🧩 依赖管理:统一的 BOM 依赖版本管理,彻底告别版本冲突。
  • 🌍 多语言支持:原生支持 Java、Groovy、Kotlin 等主流 JVM 语言。
  • 🍃 Spring 生态:深度集成 Spring Boot,并原生支持 GraalVM Native 编译。
  • 🛡️ 代码质量:内置代码规范检查、测试覆盖率等强有力的验证工具。
  • 🚀 发布支持:轻松支持将组件发布到 Maven Central 及 Gradle Plugin Portal。

🧩 插件列表 (Plugins)

IHub 提供了丰富的插件生态,按功能可分为以下几类:

🛠 核心插件

插件 ID名称类型描述
pub.ihub.plugin.ihub-settingsSettingsSettings插件仓库、版本管理及子项目管理
pub.ihub.pluginBaseProject基础插件,配置组件仓库及扩展属性
pub.ihub.plugin.ihub-versionVersionProject依赖版本检查与自动更新
pub.ihub.plugin.ihub-profilesProfilesProjectGradle 版本兼容的 Maven POM Profiles

🌍 语言支持

插件 ID名称类型描述
pub.ihub.plugin.ihub-javaJavaProjectJava 环境配置、默认依赖及兼容性
pub.ihub.plugin.ihub-groovyGroovyProjectGroovy 环境配置及组件依赖
pub.ihub.plugin.ihub-kotlinKotlinProjectKotlin 环境配置

📦 依赖与框架

插件 ID名称类型描述
pub.ihub.plugin.ihub-bomBOMProject依赖版本统一管理及兼容性配置
pub.ihub.plugin.ihub-bootBootProjectSpring Boot 插件及 Docker 镜像配置
pub.ihub.plugin.ihub-nativeNativeProjectGraalVM Native AOT 编译支持

🛡️ 验证、构建与工具

插件 ID名称类型描述
pub.ihub.plugin.ihub-testTestProject测试任务与环境配置
pub.ihub.plugin.ihub-verificationVerificationProject代码静态检查、测试覆盖率
pub.ihub.plugin.ihub-publishPublishProject组件仓库发布配置
pub.ihub.plugin.ihub-shadowShadowProject胖包 (Fat JAR) 打包支持
pub.ihub.plugin.ihub-javaagentJavaagentProjectJavaagent 动态字节码集成
pub.ihub.plugin.ihub-copyrightCopyrightProjectIDEA 统一版权信息配置
pub.ihub.plugin.ihub-git-hooksGitHooksProjectGit 钩子 (Hooks) 自动化配置
pub.ihub.plugin.ihub-nodeNode.jsProjectNode.js 及 cnpm 运行支持
pub.ihub.plugin.ihub-skillsSkillsProjectAI 技能文件自动安装(Claude Code / Copilot / OpenCode)
pub.ihub.plugin.ihub-metaMetaProject项目结构元数据 JSON 生成,供 LLM/AI 工具使用

🚀 快速开始 (Quick Start)

1. 环境要求

插件版本JavaGradle
1.9.5+17 ~ 259.4.1+
1.9.417 ~ 259.3.1+
1.9.317 ~ 259.3.1
1.9.1+17 ~ 259.1.0
1.9.017 ~ 249.0.0
1.7.6+17 ~ 238.13
1.7.2+17 ~ 238.4
1.5.6+17 ~ 218.0

2. 引入插件

settings.gradle / settings.gradle.kts 中配置 Settings 插件:

plugins {
id 'pub.ihub.plugin.ihub-settings' version '1.9.5'
}

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 插件
├── ihub-meta/ # AI 元数据 JSON 生成插件
├── ihub-skills/ # AI 技能文件自动安装插件
├── samples/ # 示例项目
└── docs/ # VuePress 文档站点

🛠️ 技术栈与常用命令 (Tech Stack & Commands)

  • 开发语言: Groovy 4.0.29(@CompileStatic
  • 构建系统: Gradle 9.4.1(wrapper 锁定)
  • 测试框架: Spock 2.4-groovy-4.0 + Gradle TestKit
  • 静态分析: CodeNarc 3.7.0、PMD 7.23.0
  • 覆盖率: JaCoCo 0.8.14(通过 pl.droidsonroids.jacoco.testkit 适配)
  • 代码格式: Spotless 8.4.0
# 🔨 构建整个项目
./gradlew build
# 🧪 运行所有测试
./gradlew test# 🔍 执行代码质量检查 (跳过测试)
./gradlew check -x test# ✨ 应用代码格式与版权头
./gradlew spotlessApply
# 💬 检查 Git 提交信息格式
./gradlew commitCheck
# 📦 发布插件到本地 Maven 仓库 (用于本地测试)
./gradlew publishToMavenLocal
# 🧹 清理构建产物
./gradlew clean

📚 文档 (Documentation)

📈 项目状态 (Project Status)

Repobeats analytics image

🤝 参与贡献 (Contributing)

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

Contributors

📄 开源协议 (License)

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

💝 鸣谢

非常感谢 Jetbrains 对本开源项目的支持。

JetBrains Logo (Main) logo

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

711 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

1,654 Commits

Folders and files

NameName
Last commit message
Last commit date

IHubIHub Plugins

IHub Plugins

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

CII Best PracticesGradle BuildTestsCodeFactorCodecovGradle Plugin

GitHub StarsGitee StarsLicense


✨ 特性 (Features)

  • 📦 开箱即用:零配置即可快速开始,默认配置完全遵循最佳实践。
  • 🛠️ 高度可扩展:提供灵活的扩展属性系统,支持多种层级的配置方式。
  • 🧩 依赖管理:统一的 BOM 依赖版本管理,彻底告别版本冲突。
  • 🌍 多语言支持:原生支持 Java、Groovy、Kotlin 等主流 JVM 语言。
  • 🍃 Spring 生态:深度集成 Spring Boot,并原生支持 GraalVM Native 编译。
  • 🛡️ 代码质量:内置代码规范检查、测试覆盖率等强有力的验证工具。
  • 🚀 发布支持:轻松支持将组件发布到 Maven Central 及 Gradle Plugin Portal。

🧩 插件列表 (Plugins)

IHub 提供了丰富的插件生态,按功能可分为以下几类:

🛠 核心插件

插件 ID名称类型描述
pub.ihub.plugin.ihub-settingsSettingsSettings插件仓库、版本管理及子项目管理
pub.ihub.pluginBaseProject基础插件,配置组件仓库及扩展属性
pub.ihub.plugin.ihub-versionVersionProject依赖版本检查与自动更新
pub.ihub.plugin.ihub-profilesProfilesProjectGradle 版本兼容的 Maven POM Profiles

🌍 语言支持

插件 ID名称类型描述
pub.ihub.plugin.ihub-javaJavaProjectJava 环境配置、默认依赖及兼容性
pub.ihub.plugin.ihub-groovyGroovyProjectGroovy 环境配置及组件依赖
pub.ihub.plugin.ihub-kotlinKotlinProjectKotlin 环境配置

📦 依赖与框架

插件 ID名称类型描述
pub.ihub.plugin.ihub-bomBOMProject依赖版本统一管理及兼容性配置
pub.ihub.plugin.ihub-bootBootProjectSpring Boot 插件及 Docker 镜像配置
pub.ihub.plugin.ihub-nativeNativeProjectGraalVM Native AOT 编译支持

🛡️ 验证、构建与工具

插件 ID名称类型描述
pub.ihub.plugin.ihub-testTestProject测试任务与环境配置
pub.ihub.plugin.ihub-verificationVerificationProject代码静态检查、测试覆盖率
pub.ihub.plugin.ihub-publishPublishProject组件仓库发布配置
pub.ihub.plugin.ihub-shadowShadowProject胖包 (Fat JAR) 打包支持
pub.ihub.plugin.ihub-javaagentJavaagentProjectJavaagent 动态字节码集成
pub.ihub.plugin.ihub-copyrightCopyrightProjectIDEA 统一版权信息配置
pub.ihub.plugin.ihub-git-hooksGitHooksProjectGit 钩子 (Hooks) 自动化配置
pub.ihub.plugin.ihub-nodeNode.jsProjectNode.js 及 cnpm 运行支持
pub.ihub.plugin.ihub-skillsSkillsProjectAI 技能文件自动安装(Claude Code / Copilot / OpenCode)
pub.ihub.plugin.ihub-metaMetaProject项目结构元数据 JSON 生成,供 LLM/AI 工具使用

🚀 快速开始 (Quick Start)

1. 环境要求

插件版本JavaGradle
1.9.5+17 ~ 259.4.1+
1.9.417 ~ 259.3.1+
1.9.317 ~ 259.3.1
1.9.1+17 ~ 259.1.0
1.9.017 ~ 249.0.0
1.7.6+17 ~ 238.13
1.7.2+17 ~ 238.4
1.5.6+17 ~ 218.0

2. 引入插件

settings.gradle / settings.gradle.kts 中配置 Settings 插件:

plugins {
id 'pub.ihub.plugin.ihub-settings' version '1.9.5'
}

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 插件
├── ihub-meta/ # AI 元数据 JSON 生成插件
├── ihub-skills/ # AI 技能文件自动安装插件
├── samples/ # 示例项目
└── docs/ # VuePress 文档站点

🛠️ 技术栈与常用命令 (Tech Stack & Commands)

  • 开发语言: Groovy 4.0.29(@CompileStatic
  • 构建系统: Gradle 9.4.1(wrapper 锁定)
  • 测试框架: Spock 2.4-groovy-4.0 + Gradle TestKit
  • 静态分析: CodeNarc 3.7.0、PMD 7.23.0
  • 覆盖率: JaCoCo 0.8.14(通过 pl.droidsonroids.jacoco.testkit 适配)
  • 代码格式: Spotless 8.4.0
# 🔨 构建整个项目
./gradlew build
# 🧪 运行所有测试
./gradlew test# 🔍 执行代码质量检查 (跳过测试)
./gradlew check -x test# ✨ 应用代码格式与版权头
./gradlew spotlessApply
# 💬 检查 Git 提交信息格式
./gradlew commitCheck
# 📦 发布插件到本地 Maven 仓库 (用于本地测试)
./gradlew publishToMavenLocal
# 🧹 清理构建产物
./gradlew clean

📚 文档 (Documentation)

📈 项目状态 (Project Status)

Repobeats analytics image

🤝 参与贡献 (Contributing)

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

Contributors

📄 开源协议 (License)

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

💝 鸣谢

非常感谢 Jetbrains 对本开源项目的支持。

JetBrains Logo (Main) logo

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

711 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

1,654 Commits

Folders and files

NameName
Last commit message
Last commit date

IHubIHub Plugins

IHub Plugins

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

CII Best PracticesGradle BuildTestsCodeFactorCodecovGradle Plugin

GitHub StarsGitee StarsLicense


✨ 特性 (Features)

  • 📦 开箱即用:零配置即可快速开始,默认配置完全遵循最佳实践。
  • 🛠️ 高度可扩展:提供灵活的扩展属性系统,支持多种层级的配置方式。
  • 🧩 依赖管理:统一的 BOM 依赖版本管理,彻底告别版本冲突。
  • 🌍 多语言支持:原生支持 Java、Groovy、Kotlin 等主流 JVM 语言。
  • 🍃 Spring 生态:深度集成 Spring Boot,并原生支持 GraalVM Native 编译。
  • 🛡️ 代码质量:内置代码规范检查、测试覆盖率等强有力的验证工具。
  • 🚀 发布支持:轻松支持将组件发布到 Maven Central 及 Gradle Plugin Portal。

🧩 插件列表 (Plugins)

IHub 提供了丰富的插件生态,按功能可分为以下几类:

🛠 核心插件

插件 ID名称类型描述
pub.ihub.plugin.ihub-settingsSettingsSettings插件仓库、版本管理及子项目管理
pub.ihub.pluginBaseProject基础插件,配置组件仓库及扩展属性
pub.ihub.plugin.ihub-versionVersionProject依赖版本检查与自动更新
pub.ihub.plugin.ihub-profilesProfilesProjectGradle 版本兼容的 Maven POM Profiles

🌍 语言支持

插件 ID名称类型描述
pub.ihub.plugin.ihub-javaJavaProjectJava 环境配置、默认依赖及兼容性
pub.ihub.plugin.ihub-groovyGroovyProjectGroovy 环境配置及组件依赖
pub.ihub.plugin.ihub-kotlinKotlinProjectKotlin 环境配置

📦 依赖与框架

插件 ID名称类型描述
pub.ihub.plugin.ihub-bomBOMProject依赖版本统一管理及兼容性配置
pub.ihub.plugin.ihub-bootBootProjectSpring Boot 插件及 Docker 镜像配置
pub.ihub.plugin.ihub-nativeNativeProjectGraalVM Native AOT 编译支持

🛡️ 验证、构建与工具

插件 ID名称类型描述
pub.ihub.plugin.ihub-testTestProject测试任务与环境配置
pub.ihub.plugin.ihub-verificationVerificationProject代码静态检查、测试覆盖率
pub.ihub.plugin.ihub-publishPublishProject组件仓库发布配置
pub.ihub.plugin.ihub-shadowShadowProject胖包 (Fat JAR) 打包支持
pub.ihub.plugin.ihub-javaagentJavaagentProjectJavaagent 动态字节码集成
pub.ihub.plugin.ihub-copyrightCopyrightProjectIDEA 统一版权信息配置
pub.ihub.plugin.ihub-git-hooksGitHooksProjectGit 钩子 (Hooks) 自动化配置
pub.ihub.plugin.ihub-nodeNode.jsProjectNode.js 及 cnpm 运行支持
pub.ihub.plugin.ihub-skillsSkillsProjectAI 技能文件自动安装(Claude Code / Copilot / OpenCode)
pub.ihub.plugin.ihub-metaMetaProject项目结构元数据 JSON 生成,供 LLM/AI 工具使用

🚀 快速开始 (Quick Start)

1. 环境要求

插件版本JavaGradle
1.9.5+17 ~ 259.4.1+
1.9.417 ~ 259.3.1+
1.9.317 ~ 259.3.1
1.9.1+17 ~ 259.1.0
1.9.017 ~ 249.0.0
1.7.6+17 ~ 238.13
1.7.2+17 ~ 238.4
1.5.6+17 ~ 218.0

2. 引入插件

settings.gradle / settings.gradle.kts 中配置 Settings 插件:

plugins {
id 'pub.ihub.plugin.ihub-settings' version '1.9.5'
}

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 插件
├── ihub-meta/ # AI 元数据 JSON 生成插件
├── ihub-skills/ # AI 技能文件自动安装插件
├── samples/ # 示例项目
└── docs/ # VuePress 文档站点

🛠️ 技术栈与常用命令 (Tech Stack & Commands)

  • 开发语言: Groovy 4.0.29(@CompileStatic
  • 构建系统: Gradle 9.4.1(wrapper 锁定)
  • 测试框架: Spock 2.4-groovy-4.0 + Gradle TestKit
  • 静态分析: CodeNarc 3.7.0、PMD 7.23.0
  • 覆盖率: JaCoCo 0.8.14(通过 pl.droidsonroids.jacoco.testkit 适配)
  • 代码格式: Spotless 8.4.0
# 🔨 构建整个项目
./gradlew build
# 🧪 运行所有测试
./gradlew test# 🔍 执行代码质量检查 (跳过测试)
./gradlew check -x test# ✨ 应用代码格式与版权头
./gradlew spotlessApply
# 💬 检查 Git 提交信息格式
./gradlew commitCheck
# 📦 发布插件到本地 Maven 仓库 (用于本地测试)
./gradlew publishToMavenLocal
# 🧹 清理构建产物
./gradlew clean

📚 文档 (Documentation)

📈 项目状态 (Project Status)

Repobeats analytics image

🤝 参与贡献 (Contributing)

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

Contributors

📄 开源协议 (License)

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

💝 鸣谢

非常感谢 Jetbrains 对本开源项目的支持。

JetBrains Logo (Main) logo

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

711 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

1,654 Commits

Folders and files

NameName
Last commit message
Last commit date

IHubIHub Plugins

IHub Plugins

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

CII Best PracticesGradle BuildTestsCodeFactorCodecovGradle Plugin

GitHub StarsGitee StarsLicense


✨ 特性 (Features)

  • 📦 开箱即用:零配置即可快速开始,默认配置完全遵循最佳实践。
  • 🛠️ 高度可扩展:提供灵活的扩展属性系统,支持多种层级的配置方式。
  • 🧩 依赖管理:统一的 BOM 依赖版本管理,彻底告别版本冲突。
  • 🌍 多语言支持:原生支持 Java、Groovy、Kotlin 等主流 JVM 语言。
  • 🍃 Spring 生态:深度集成 Spring Boot,并原生支持 GraalVM Native 编译。
  • 🛡️ 代码质量:内置代码规范检查、测试覆盖率等强有力的验证工具。
  • 🚀 发布支持:轻松支持将组件发布到 Maven Central 及 Gradle Plugin Portal。

🧩 插件列表 (Plugins)

IHub 提供了丰富的插件生态,按功能可分为以下几类:

🛠 核心插件

插件 ID名称类型描述
pub.ihub.plugin.ihub-settingsSettingsSettings插件仓库、版本管理及子项目管理
pub.ihub.pluginBaseProject基础插件,配置组件仓库及扩展属性
pub.ihub.plugin.ihub-versionVersionProject依赖版本检查与自动更新
pub.ihub.plugin.ihub-profilesProfilesProjectGradle 版本兼容的 Maven POM Profiles

🌍 语言支持

插件 ID名称类型描述
pub.ihub.plugin.ihub-javaJavaProjectJava 环境配置、默认依赖及兼容性
pub.ihub.plugin.ihub-groovyGroovyProjectGroovy 环境配置及组件依赖
pub.ihub.plugin.ihub-kotlinKotlinProjectKotlin 环境配置

📦 依赖与框架

插件 ID名称类型描述
pub.ihub.plugin.ihub-bomBOMProject依赖版本统一管理及兼容性配置
pub.ihub.plugin.ihub-bootBootProjectSpring Boot 插件及 Docker 镜像配置
pub.ihub.plugin.ihub-nativeNativeProjectGraalVM Native AOT 编译支持

🛡️ 验证、构建与工具

插件 ID名称类型描述
pub.ihub.plugin.ihub-testTestProject测试任务与环境配置
pub.ihub.plugin.ihub-verificationVerificationProject代码静态检查、测试覆盖率
pub.ihub.plugin.ihub-publishPublishProject组件仓库发布配置
pub.ihub.plugin.ihub-shadowShadowProject胖包 (Fat JAR) 打包支持
pub.ihub.plugin.ihub-javaagentJavaagentProjectJavaagent 动态字节码集成
pub.ihub.plugin.ihub-copyrightCopyrightProjectIDEA 统一版权信息配置
pub.ihub.plugin.ihub-git-hooksGitHooksProjectGit 钩子 (Hooks) 自动化配置
pub.ihub.plugin.ihub-nodeNode.jsProjectNode.js 及 cnpm 运行支持
pub.ihub.plugin.ihub-skillsSkillsProjectAI 技能文件自动安装(Claude Code / Copilot / OpenCode)
pub.ihub.plugin.ihub-metaMetaProject项目结构元数据 JSON 生成,供 LLM/AI 工具使用

🚀 快速开始 (Quick Start)

1. 环境要求

插件版本JavaGradle
1.9.5+17 ~ 259.4.1+
1.9.417 ~ 259.3.1+
1.9.317 ~ 259.3.1
1.9.1+17 ~ 259.1.0
1.9.017 ~ 249.0.0
1.7.6+17 ~ 238.13
1.7.2+17 ~ 238.4
1.5.6+17 ~ 218.0

2. 引入插件

settings.gradle / settings.gradle.kts 中配置 Settings 插件:

plugins {
id 'pub.ihub.plugin.ihub-settings' version '1.9.5'
}

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 插件
├── ihub-meta/ # AI 元数据 JSON 生成插件
├── ihub-skills/ # AI 技能文件自动安装插件
├── samples/ # 示例项目
└── docs/ # VuePress 文档站点

🛠️ 技术栈与常用命令 (Tech Stack & Commands)

  • 开发语言: Groovy 4.0.29(@CompileStatic
  • 构建系统: Gradle 9.4.1(wrapper 锁定)
  • 测试框架: Spock 2.4-groovy-4.0 + Gradle TestKit
  • 静态分析: CodeNarc 3.7.0、PMD 7.23.0
  • 覆盖率: JaCoCo 0.8.14(通过 pl.droidsonroids.jacoco.testkit 适配)
  • 代码格式: Spotless 8.4.0
# 🔨 构建整个项目
./gradlew build
# 🧪 运行所有测试
./gradlew test# 🔍 执行代码质量检查 (跳过测试)
./gradlew check -x test# ✨ 应用代码格式与版权头
./gradlew spotlessApply
# 💬 检查 Git 提交信息格式
./gradlew commitCheck
# 📦 发布插件到本地 Maven 仓库 (用于本地测试)
./gradlew publishToMavenLocal
# 🧹 清理构建产物
./gradlew clean

📚 文档 (Documentation)

📈 项目状态 (Project Status)

Repobeats analytics image

🤝 参与贡献 (Contributing)

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

Contributors

📄 开源协议 (License)

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

💝 鸣谢

非常感谢 Jetbrains 对本开源项目的支持。

JetBrains Logo (Main) logo

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

711 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages