blob: 3785c29255ad3e8a91aeeb90d269a9bab6df98cc [file]
#!/usr/bin/env python3
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Get the Maven version.
This script runs 'mvn -version' and extracts the major version number.
Usage:
python3 scripts/maven-version.py
Output:
Prints the major version number (e.g., "3") to stdout.
"""
import re
import subprocess
import sys
def get_maven_version():
"""Get the Maven major version from mvn -version output."""
try:
result = subprocess.run(
['mvn', '-version'],
capture_output=True,
text=True,
check=False
)
# Parse version from output
version_text = result.stdout or result.stderr
# Pattern: "Apache Maven 3.9.5" or "Maven 3.9.5"
match = re.search(r'Maven\s+(\d+)\.(\d+)', version_text)
if match:
major = int(match.group(1))
return major
# Fallback: try to find just a version number at the start
match = re.search(r'^(\d+)\.(\d+)', version_text)
if match:
major = int(match.group(1))
return major
print("ERROR: Could not determine Maven version from output", file=sys.stderr)
if version_text:
print(f"Output was: {version_text[:200]}", file=sys.stderr)
sys.exit(1)
except FileNotFoundError:
print("ERROR: mvn command not found. Please install Maven.", file=sys.stderr)
sys.exit(1)
except Exception as e:
print(f"ERROR: Could not get Maven version: {e}", file=sys.stderr)
sys.exit(1)
if __name__ == '__main__':
version = get_maven_version()
print(version)