[4] 젠킨스 Jenkins SVN + MAVEN + 부트 JAR 빌드 자동화 배포
10분마다 SVN서버에서 pull 받고 빌드 후 배포 하는 방법을 간단하게 정리하겠다.
스프링부트 프로젝트는 보통 jar 파일로 배포된다.
※ 삽질내용
- Build Steps 단계의 Excute Shell 에 jar실행 스크립트만 작성하면 될줄알았는데 기존빌드가 종료되지 않아 팬딩오류가 발생하였음
※ 사전 준비 (중요)
- POST BUILD TESK 플러그인 설치하기
post build task 플러그인은 빌드가 성공했을 경우에만 후 조치로 기존 앱을 종료시키고 새로운 앱으로 교체 및 시작하는 과정을 진행하도록 도와주는 역할을 한다.
1. 아이템생성, Freestyle project 선택
2. SVN 정보 입력 , 자세한 입력방법은 이전페이지 참고
3. 빌드 유발 입력
크론탭 포맷으로 스케쥴을 입력한다. 위의 설정은 > 매 10분마다 실행
4. 메이븐 설정
-Build steps > Invoke top-level Maven targets 선택 후 작성한다.
※ 반드시 메이븐 기본 설정은 미리
Dashboard > Jenkins 관리 > Tools > Maven installations 에 해놓아야 한다.
딱히 어려운 설정은 없다. Install automatically 옵션만 체크하면 알아서 설치한다.
5. Post build task 작성, ※이 포스트에서 가장 중요한부분※
Script 내용
echo "Build 성공"
pkill -f stsProject.jar || true
sleep 10
java -jar /Users/devmk/.jenkins/workspace/svn_maven_jar/target/stsProject.jar &
위의 스크립트내용은 현재 실행되있는 jar 파일을 한번 종료시키고 10초 후 재기동하는 명령어다.
Log text란 특정 텍스트를 캐치하여 성공이라 판단하고 Script를 실행한다는 의미다. BUILD SUCCESS 라고 적은 이유는
메이븐 빌드가 성공하면 BUILD SUCCESS 란 문구를 출력한다.
이 문구를 출력하여 정상적인 빌드로 판단하고 TRUE를 반환하여
마지막에 쉘스크립트를 실행한다는 의미다.
이렇게 설정하면
10분마다 svn을 pull받아 리빌딩후 jar명령어로 배포한다.