#!/bin/bash set -e # Extract version using grep/sed as fallback (works even with -SNAPSHOT) current_version=$(awk '// {count++; if(count == 2) print $0}' pom.xml | sed -n 's|.*\([^<]*\).*|\1|p') if [[ -z "$current_version" ]]; then echo "❌ Failed to extract version from pom.xml" exit 1 fi # Strip "-SNAPSHOT" if present base_version="${current_version%-SNAPSHOT}" # Split into major.minor.patch IFS='.' read -r major minor patch <<< "$base_version" # Handle missing patch (e.g. 1.0) patch=${patch:-0} # Increment minor, reset patch minor=$((minor + 1)) patch=0 # Preserve -SNAPSHOT if it was present if [[ "$current_version" == *-SNAPSHOT ]]; then new_version="${major}.${minor}.${patch}-SNAPSHOT" else new_version="${major}.${minor}.${patch}" fi # Apply it with Maven echo "🔧 Updating version: $current_version → $new_version" mvn versions:set -DnewVersion="$new_version" mvn versions:commit # Remove unnecessary backup file rm -f pom.xml.versionsBackup echo "✅ Done!"