From: Kai Moritz Date: Fri, 29 May 2026 23:14:31 +0000 (+0000) Subject: bootstrap-gradle.sh: Bootstrap-Skript für Gradle-Wrapper-JAR hinzugefügt X-Git-Tag: springkafka/technik-check--vorlage--claude-6~4 X-Git-Url: http://juplo.de/gitweb/?a=commitdiff_plain;h=10eefb665d441c1014f413c4f5803a1739a4a794;p=demos%2Fkafka%2Ftraining bootstrap-gradle.sh: Bootstrap-Skript für Gradle-Wrapper-JAR hinzugefügt Erzeugt den fehlenden `gradle-wrapper.jar` entweder über eine lokale Gradle-Installation oder durch direkten Download von GitHub. Mit `--distribute` wird der JAR auch in alle Geschwister-Übungsverzeichnisse kopiert (setzt TGZ-Verzeichnisstruktur voraus, in der Branch-Namen die Verzeichnishierarchie abbilden). Co-Authored-By: Claude Sonnet 4.6 --- diff --git a/bootstrap-gradle.sh b/bootstrap-gradle.sh new file mode 100644 index 00000000..3ddf5a6b --- /dev/null +++ b/bootstrap-gradle.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# Erzeugt den Gradle-Wrapper-JAR, der wegen Mail-Sicherheitsfiltern nicht im +# Repository enthalten ist. Einmalig ausführen, bevor ./gradlew verwendet wird. +# +# Variante 1: Verwendet eine lokale Gradle-Installation, falls vorhanden. +# Variante 2: Lädt den JAR direkt von GitHub herunter. +# +# Mit --distribute werden Gradle-Wrapper-JAR und gradlew zusätzlich in alle +# Geschwister-Übungsverzeichnisse kopiert (setzt TGZ-Verzeichnisstruktur voraus). + +set -e + +WRAPPER_JAR="gradle/wrapper/gradle-wrapper.jar" +PROPERTIES="gradle/wrapper/gradle-wrapper.properties" + +DISTRIBUTE=false +[ "$1" = "--distribute" ] && DISTRIBUTE=true + +if [ ! -f "$WRAPPER_JAR" ] || [ ! -f "gradlew" ]; then + VERSION=$(grep distributionUrl "$PROPERTIES" | grep -oE '[0-9]+\.[0-9]+(\.[0-9]+)?') + echo "Benötigte Gradle-Version: $VERSION" + + if command -v gradle >/dev/null 2>&1; then + echo "Verwende lokale Gradle-Installation..." + gradle wrapper --gradle-version="$VERSION" + echo "Gradle-Wrapper erfolgreich erzeugt." + else + echo "Kein lokales Gradle gefunden -- lade von GitHub (v${VERSION})..." + BASE="https://raw.githubusercontent.com/gradle/gradle/v${VERSION}" + mkdir -p gradle/wrapper + curl -fL "${BASE}/gradle/wrapper/gradle-wrapper.jar" -o "$WRAPPER_JAR" + curl -fL "${BASE}/gradlew" -o gradlew + chmod +x gradlew + echo "Gradle-Wrapper erfolgreich heruntergeladen." + fi +else + echo "Gradle-Wrapper bereits vorhanden." +fi + +if $DISTRIBUTE; then + TRAINING_ROOT="$(cd ../.. && pwd)" + echo "Verteile Gradle-Wrapper in: $TRAINING_ROOT" + find "$TRAINING_ROOT" -name "gradle-wrapper.properties" ! -path "$(pwd)/*" | while read -r props; do + dir="$(dirname "$props")" + target_jar="$dir/gradle-wrapper.jar" + target_gradlew="$(cd "$dir/../.." && pwd)/gradlew" + if [ ! -f "$target_jar" ]; then + cp "$WRAPPER_JAR" "$target_jar" + echo " JAR → $target_jar" + fi + if [ ! -f "$target_gradlew" ]; then + cp gradlew "$target_gradlew" + echo " gradlew → $target_gradlew" + fi + done +fi