Files
amethyst/.claude/skills/gradle-expert/scripts/fix-dependency-conflicts.sh
T
2025-12-30 15:45:02 +02:00

66 lines
2.2 KiB
Bash

#!/bin/bash
# Diagnose and suggest fixes for common dependency conflicts
set -e
PROJECT_ROOT="${1:-.}"
cd "$PROJECT_ROOT"
echo "🔍 Analyzing dependency conflicts..."
echo "===================================="
echo ""
# Run dependency report
echo "Generating dependency insight report..."
./gradlew dependencies --configuration runtimeClasspath > /tmp/gradle-dependencies.txt 2>&1 || true
# Check for common conflict patterns
echo ""
echo "🔎 Checking for common issues:"
echo "------------------------------"
# Check 1: Compose version conflicts
if grep -q "compose" /tmp/gradle-dependencies.txt; then
echo "✓ Compose dependencies found"
echo " Tip: Ensure Compose Multiplatform and AndroidX Compose versions align"
echo " Current project uses:"
echo " - Compose Multiplatform BOM"
echo " - AndroidX Compose BOM"
fi
# Check 2: secp256k1 variants
if grep -q "secp256k1" /tmp/gradle-dependencies.txt; then
echo "✓ secp256k1 dependencies found"
echo " Ensure correct variant:"
echo " - Android: secp256k1-kmp-jni-android"
echo " - JVM/Desktop: secp256k1-kmp-jni-jvm"
echo " - Common: secp256k1-kmp (transitive)"
fi
# Check 3: Kotlin version alignment
KOTLIN_VERSION=$(grep "kotlin =" gradle/libs.versions.toml | cut -d'"' -f2)
echo "✓ Kotlin version: $KOTLIN_VERSION"
echo " All Kotlin plugins should use the same version"
# Check 4: Multiple versions of same library
echo ""
echo "🔍 Checking for version conflicts..."
./gradlew dependencyInsight --configuration runtimeClasspath --dependency okhttp || true
echo ""
echo "💡 Common fixes:"
echo "---------------"
echo "1. Compose conflicts:"
echo " - Align compose-multiplatform plugin version with runtime"
echo " - Use BOM for AndroidX Compose to enforce consistency"
echo ""
echo "2. secp256k1 conflicts:"
echo " - Use 'api' instead of 'implementation' in source sets"
echo " - Ensure androidMain uses jni-android, jvmMain uses jni-jvm"
echo ""
echo "3. Kotlin version conflicts:"
echo " - Update all kotlin plugins to same version in libs.versions.toml"
echo " - Check for transitive Kotlin dependencies"
echo ""
echo "Run './gradlew dependencyInsight --dependency <name>' for specific conflicts"