diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100644 index 0000000..7a1a3ec --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,33 @@ +#!/bin/bash +#============================================================================== +# pre-commit hook (Java Maven) +# Maven 컴파일 검증 — 컴파일 실패 시 커밋 차단 +#============================================================================== + +echo "pre-commit: Maven 컴파일 검증 중..." + +# Maven Wrapper 사용 (없으면 mvn 사용) +if [ -f "./mvnw" ]; then + MVN="./mvnw" +elif command -v mvn &>/dev/null; then + MVN="mvn" +else + echo "경고: Maven이 설치되지 않았습니다. 컴파일 검증을 건너뜁니다." + exit 0 +fi + +# 컴파일 검증 (테스트 제외, 오프라인 가능) +$MVN compile -q -DskipTests 2>&1 +RESULT=$? + +if [ $RESULT -ne 0 ]; then + echo "" + echo "╔══════════════════════════════════════════════════════════╗" + echo "║ 컴파일 실패! 커밋이 차단되었습니다. ║" + echo "║ 컴파일 오류를 수정한 후 다시 커밋해주세요. ║" + echo "╚══════════════════════════════════════════════════════════╝" + echo "" + exit 1 +fi + +echo "pre-commit: 컴파일 성공"