무한루프/개발, 업무

변경된 소스 코드만 추출하여 보관하고 패키징 하는 배치 스크립트

시원한생맥주 2025. 3. 7. 12:40

 

 

변경된 소스 코드만 추출하여 보관하고 패키징 하는 배치 스크립트

 

개요

이 배치 스크립트는 특정 날짜 이후 변경된 파일을 복사하고, 디렉토리를 정리한 후 JAR 파일을 생성하는 역할을 수행합니다. 이를 통해 개발 환경에서 변경된 소스 파일을 관리하고 패키징할 수 있습니다.

 

@ECHO OFF

setlocal


set RootDir=D:\WINPMS\workspace\PMS_FIS


set ChageDir=D:\WINPMS\workspace\PMS_Uploads\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%_Change

ECHO 디렉토리 생성
MD %ChageDir%


ECHO 파일 복사(날짜로 할 경우 /d:02-11-2009 /E 하위 디렉터리가 비어 있는 경우에도 모두 복사합니다 )
ECHO %1 일부터 변경된 파일 명세 복사

xcopy "%RootDir%\src" "%ChageDir%\pmssrc\src\" /S /Y /d:%1
xcopy "%RootDir%\WebContent" "%ChageDir%\pmssrc\PMS\" /S /Y /d:%1
xcopy "%RootDir%\WebContent\apndFile" "%ChageDir%\pmsfiles" /S /Y /d:%1


ECHO 디렉토리 이동

cd "%ChageDir%"


rmdir /s svn/
rmdir /s /q "%ChageDir%\pmssrc\PMS\apndFile"

ECHO pmssrc.jar 파일 작성
cd "%ChageDir%\pmssrc"
jar cvf pmssrc.jar *.*

ECHO Complete~!

CD "%ChageDir%"

pause

 

 

주요 변수 설정

set RootDir=D:\WINPMS\workspace\PMS_FIS
set ChageDir=D:\WINPMS\workspace\PMS_Uploads\%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%_Change
  • RootDir : 원본 소스 코드가 위치한 디렉토리 (PMS_FIS 프로젝트 경로)
  • ChageDir : 변경된 파일을 저장할 디렉토리 (현재 날짜와 시간을 포함한 폴더 생성)

 

변경된 파일 복사

xcopy "%RootDir%\src" "%ChageDir%\pmssrc\src\" /S /Y /d:%1
xcopy "%RootDir%\WebContent" "%ChageDir%\pmssrc\PMS\" /S /Y /d:%1
xcopy "%RootDir%\WebContent\apndFile" "%ChageDir%\pmsfiles" /S /Y /d:%1
  • xcopy 명령어를 사용하여 변경된 파일만 복사 (/d:%1 옵션 활용)
  • src 폴더와 WebContent 폴더의 변경 사항을 새로운 Change 폴더에 저장
  • apndFile 폴더도 복사하여 함께 보관

 

불필요한 디렉토리 정리

rmdir /s svn/
rmdir /s /q "%ChageDir%\pmssrc\PMS\apndFile"
  • svn 디렉토리 삭제 (버전 관리 관련 불필요한 파일 제거)
  • apndFile 폴더 삭제 (WebContent 내 필요 없는 추가 파일 제거)

 

JAR 파일 생성

cd "%ChageDir%\pmssrc"
jar cvf pmssrc.jar *.*
  • pmssrc.jar 파일을 생성하여 변경된 소스를 패키징
  • jar cvf 명령어를 사용하여 현재 디렉토리 내의 모든 파일을 포함

 

실행 완료 메시지 출력

ECHO Complete~!
CD "%ChageDir%"
pause
  • Complete~! 메시지를 출력하여 작업 완료를 알림
  • pause 명령어로 일시 정지하여 사용자가 결과를 확인할 수 있도록 함

 

정리

이 배치 스크립트는 변경된 소스 코드만 추출하여 보관하고 패키징하는 기능을 수행합니다. 이를 통해 효율적인 변경 사항 관리와 배포가 가능해집니다.