| Crates.io | gradle-dependency-health-checker |
| lib.rs | gradle-dependency-health-checker |
| version | 0.4.1 |
| created_at | 2025-08-26 12:23:55.596886+00 |
| updated_at | 2025-08-28 07:16:19.222453+00 |
| description | A powerful tool to detect duplicate dependencies, version conflicts, duplicate plugins, and recommend dependency bundles in Gradle projects with JSON export capabilities |
| homepage | https://github.com/ParkJong-Hun/gradle-dependency-health-checker |
| repository | https://github.com/ParkJong-Hun/gradle-dependency-health-checker |
| max_upload_size | |
| id | 1811086 |
| size | 202,311 |
A comprehensive tool to analyze Gradle projects for dependency issues, version conflicts, and optimization opportunities. Supports modern Kotlin Multiplatform projects, version catalogs, and provides both console and JSON output.
sourceSets { commonMain, androidMain, iosMain, etc. }libs.versions.toml integration with dot-to-dash conversionlibs.xxx references and direct string declarationsproject(':module') and projects.xxx referencescompose.runtime, compose.ui and other compose accessorsgit clone https://github.com/ParkJong-Hun/gradle-dependency-health-checker.git
cd gradle-dependency-health-checker
cargo build --release
# After release build
./target/release/gradle-dependency-health-checker --path <project-path>
# Analyze current directory
gradle-dependency-health-checker
# Analyze specific path
gradle-dependency-health-checker --path /path/to/gradle/project
# Run specific checks only
gradle-dependency-health-checker conflicts
gradle-dependency-health-checker dependencies
gradle-dependency-health-checker plugins
gradle-dependency-health-checker bundles
# Output to JSON file (includes all analysis sections)
gradle-dependency-health-checker --output analysis.json
# Output specific analysis to JSON file (filtered content)
gradle-dependency-health-checker conflicts --output conflicts.json
gradle-dependency-health-checker dependencies --output deps.json
gradle-dependency-health-checker bundles --output bundles.json
# Silent mode (no console output)
gradle-dependency-health-checker --output analysis.json --silent
conflicts - Check version conflicts onlydependencies - Check duplicate dependencies onlyplugins - Check duplicate plugins onlyduplicates - Check both dependency and plugin duplicatesbundles - Generate bundle recommendations onlyall - Run all checks explicitly (default behavior)📖 For detailed usage examples and advanced configuration, see docs/advanced-usage.md
🚨 Found 2 version conflicts:
🚨 Dependency: com.squareup.okhttp3:okhttp
⚠️ app/build.gradle:12 - implementation configuration (version: 4.12.0)
⚠️ feature/build.gradle:8 - implementation configuration (version: 4.10.0)
⚠️ Found 4 duplicate dependencies:
📦 Dependency: org.jetbrains.compose:runtime
📍 core/model/build.gradle.kts:13 - implementation-commonMain configuration [via libs.compose.runtime]
📍 core/common/build.gradle.kts:13 - commonMainImplementation configuration [via libs.compose.runtime]
📍 app-android/build.gradle.kts:72 - implementation configuration [via libs.compose.runtime]
📦 Dependency: io.ktor:ktor-client-core
📍 core/network/build.gradle.kts:15 - api-commonMain configuration (version: 2.3.5) [via libs.ktor.client.core]
📍 feature/session/build.gradle.kts:12 - implementation configuration (version: 2.3.5) [via libs.ktor.client.core]
💡 Bundle recommendations (showing 2 of 3):
📎 1. Recommended Bundle (5 dependencies × 4 modules)
Dependencies:
├─ org.jetbrains.compose:runtime
├─ org.jetbrains.compose:ui
├─ androidx.compose.material3:material3
└─ androidx.compose.ui:ui-tooling
Configurations: api-commonMain, implementation, implementation-commonMain
Used by modules:
├─ core/designsystem/build.gradle.kts
├─ feature/session/build.gradle.kts
├─ feature/timetable/build.gradle.kts
└─ app-android/build.gradle.kts
💭 Consider creating a shared module: compose-bundle
📎 2. Recommended Bundle (3 dependencies × 3 modules)
Dependencies:
├─ io.ktor:ktor-client-core
├─ io.ktor:ktor-client-json
└─ org.jetbrains.kotlinx:kotlinx-serialization-json
Configurations: api, implementation
Used by modules:
├─ core/network/build.gradle.kts
├─ feature/session/build.gradle.kts
└─ feature/sponsors/build.gradle.kts
💭 Consider creating a shared module: networking-bundle
📄 For JSON output format examples, see docs/json-output.md
build.gradle files with complete syntax supportbuild.gradle.kts files with type-safe declarationskotlin { sourceSets { ... } } blocksimplementation("group:artifact:version")implementation(group: "group", name: "artifact", version: "version")implementation(libs.library.reference)implementation(compose.runtime), implementation(compose.ui)implementation, api, compileOnly, etc.commonMainImplementation, androidMainApi, etc.commonMain.dependencies { }, androidMain { dependencies { } }project(':module') and projects.xxx automatically ignoredlibs.versions.toml parsing with dot-to-dash conversion🔍 For detailed format specifications, see docs/supported-formats.md
Issues and pull requests are welcome!