Skip to content

Instantly share code, notes, and snippets.

@danieldietrich
Last active May 22, 2022 06:09
Show Gist options
  • Save danieldietrich/76e480f3fb903bdeaac5b1fb007ab5ac to your computer and use it in GitHub Desktop.
Save danieldietrich/76e480f3fb903bdeaac5b1fb007ab5ac to your computer and use it in GitHub Desktop.
This script copies cached Gradle dependencies to a local Maven repository
#!/bin/bash
#
# This script copies cached Gradle dependencies to a local Maven repository
# (modulo different hashes for same coordinates).
#
function mavenize {
IFS='/' read -r -a PATHS <<< "$1"
GROUP_ID=$(echo "${PATHS[1]}" | tr . /)
ARTIFACT_ID="${PATHS[2]}"
VERSION="${PATHS[3]}"
echo "$GROUP_ID/$ARTIFACT_ID/$VERSION"
}
GRADLE_DEPENDENCY_CACHE=~/.gradle/caches/modules-2/files-2.1
MAVEN_REPO=~/.m2/repository
cd "$GRADLE_DEPENDENCY_CACHE" || exit
find . -type f -print0 | while IFS= read -r -d '' file; do
FILE_NAME=$(basename "$file")
SOURCE_DIR=$(dirname "$file")
TARGET_DIR="$MAVEN_REPO/$(mavenize "$SOURCE_DIR")"
# echo "$SOURCE_DIR/$FILE_NAME -> $TARGET_DIR/$FILE_NAME"
mkdir -p "$TARGET_DIR" && cp "$SOURCE_DIR/$FILE_NAME" "$TARGET_DIR/"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment