ERP-node/compile_only.sh

80 lines
3.5 KiB
Bash

#!/bin/bash
# MAC OS 만 실행
# if [[ "$(uname -s)" != "Darwin" ]]; then
# echo "This script runs on MAC OS only."
# echo "Current OS: $(uname -s)"
# exit 1
# fi
# ----------------------------------------------------------------------
# 기존 빌드 폴더 삭제 및 새로운 빌드 시작
# ----------------------------------------------------------------------
echo "Cleaning up old build artifacts..."
rm -rf WebContent/WEB-INF/classes/*
echo "Building Java application for development..."
# 필요한 디렉토리 생성
mkdir -p WebContent/WEB-INF/classes
mkdir -p WebContent/WEB-INF/lib # lib 폴더 존재 확인
# ----------------------------------------------------------------------
# Servlet API JAR 파일 존재 여부 확인 (단순화된 방식)
# ----------------------------------------------------------------------
SERVLET_API_JAR_PRIMARY_PATH="WebContent/WEB-INF/lib/javax.servlet-api-4.0.1.jar"
SERVLET_API_JAR_ALTERNATIVE_PATH="WebContent/WEB-INF/lib/servlet-api.jar"
if [ ! -f "$SERVLET_API_JAR_PRIMARY_PATH" ] && [ ! -f "$SERVLET_API_JAR_ALTERNATIVE_PATH" ]; then
echo "---------------------------------------------------------------------------------"
echo "ERROR: Servlet API JAR (javax.servlet-api-4.0.1.jar or servlet-api.jar)"
echo " not found in WebContent/WEB-INF/lib/"
echo ""
echo "Please add the appropriate Servlet API JAR for your project."
echo "You can typically find this JAR in a Tomcat distribution's 'lib' folder,"
echo "or download it from a trusted source like Maven Central Repository."
echo ""
echo "Build cannot proceed without it."
echo "---------------------------------------------------------------------------------"
exit 1
else
if [ -f "$SERVLET_API_JAR_PRIMARY_PATH" ]; then
echo "DEBUG: Confirmed Servlet API JAR is present at $SERVLET_API_JAR_PRIMARY_PATH"
elif [ -f "$SERVLET_API_JAR_ALTERNATIVE_PATH" ]; then
echo "DEBUG: Confirmed Servlet API JAR is present at $SERVLET_API_JAR_ALTERNATIVE_PATH"
fi
fi
# ----------------------------------------------------------------------
# 클래스패스 설정 (단순화된 방식)
EFFECTIVE_CLASSPATH="src:WebContent/WEB-INF/lib/*"
echo "DEBUG: Effective classpath for javac: $EFFECTIVE_CLASSPATH"
# src 폴더 내의 모든 .java 파일 컴파일
echo "Compiling Java files for development..."
find src -name "*.java" -print0 | xargs -0 javac -encoding UTF-8 -source 1.7 -target 1.7 -d WebContent/WEB-INF/classes -cp "$EFFECTIVE_CLASSPATH"
if [ $? -ne 0 ]; then
echo "Java compilation failed. Exiting script."
exit 1
fi
echo "Java compilation successful."
# ----------------------------------------------------------------------
# src 폴더 내의 리소스 파일(.xml, .properties 등)을 classes 폴더로 복사 (macOS 호환 방식)
echo "Copying resource files for development..."
find src -type f \( -name "*.xml" -o -name "*.properties" \) | while read -r filepath; do
# 'src/' 접두사를 제거하여 상대 경로 생성
relative_path="${filepath#src/}"
target_file="WebContent/WEB-INF/classes/$relative_path"
# 대상 디렉토리 생성
mkdir -p "$(dirname "$target_file")" || { echo "Error: Failed to create directory $(dirname "$target_file")"; exit 1; }
# 파일 복사
cp "$filepath" "$target_file" || { echo "Error: Failed to copy $filepath to $target_file"; exit 1; }
done
echo "Java application build complete for development."
echo "Build process finished successfully!"