각 개발자들이 개인 빌드 과정을 거쳐 작성한 코드들을 통합하여 실행 가능한 산출물로 만들어 내는 일련의 과정을 통합 빌드라 하며 지속적이고 자동화된 통합을 위하여
CI를 사용하며 Continous Integration이란 여러 명으로 구성된 팀이 작업한 것을 자주 각 팀원이 하루에 한 번 이상, 매일 여러 번-통합하는 것을 가리키는 소프트웨어 개발 Practice를 말한다.
CI 효과와 특징
CI(Continuous Integration)는 개발자, 버전 관리 저장소, CI시스템, 빌드 스크립트, 의사소통 장치, 통합 빌드 머신 등으로 구성 된다.
CI 서버는 형상관리 서버로부터 개발자들이 commit 한 소스 코드를 check out 받아 CI 서버의 로컬 파일 시스템에 저장하고
그 코드를 바탕으로 빌드를 실행 후 동작하는 코드 산출물(WAR, JAR 등의 working 패키지)을 생성해 낸다.
Jenkins은 오픈 소스 CI 서버로 소스와 빌드 스크립트를 사용한 자동 빌드 및 빌드 결과를 개발자에게 피드백 하는 메커니즘을 제공한다.
Jenkins의 특징 및 주요 기능
서버 개발환경 설치 가이드의 Jenkins 부분을 참고하여 Jenkins를 설치한다.
Jenkins 의 새 작업 등록 전, Jenkins 의 기본 시스템 설정한다. 설정에 JDK, ANT, Maven, SVN 서버 정보를 등록하여 프로젝트를 Compile 및 Deploy 할 수 있다.
시스템 설정은 Jenkins 관리 → System Configure 메뉴를 통해서 할 수 있다.
통합 환경에서 프로젝트를 자동으로 Compile 하기 위해 아래와 같이 새 작업(item)을 생성한다.
Item 이름을 입력하고, Maven project를 생성한다.
SVN의 최신 version 소스코드를 읽어오기 위해, Source Code Management에서 SVN에 등록된 프로젝트 정보와 사용자 정보를 아래와 같이 설정한다.
빌드 유발 케이스와 빌드 환경을 프로젝트 성격에 적합하게 설정한다.
프로젝트의 pom.xml 경로와 Goals를 입력한다.
만약 프로젝트(item)의 Maven 설정을 개별적으로 관리하고 싶다면,
고급(Advancded)을 클릭한 후 아래 이미지와 같이 설정하면 된다.