웹 개발

[jenkins] Spring boot + Maven + war 배포하는 방법

노루아부지 2022. 3. 23. 13:41
반응형

[개발환경]

OS: Windows 10

Framework: Spring boot

패키징 방식: war

빌드: Maven

형상관리: Subversion

 

 

1. JDK, Maven 설정

1.1. Jenkins home 화면에서 Jenkins 관리 메뉴 클릭

 

 

 

1.2. Global Tool Configuration 클릭

 

 

 

 

1.3. Add JDK 버튼 클릭

 

1.4. Install automatically 체크 해제 후, JDK 경로 설정

Install automatically 기능으로 설치해도 되지만, 저는 openjdk를 사용했기 때문에 직접 경로를 설정했습니다.

 

 

1.5. maven 경로 설정

maven은 미리 설치를 하지 않았기 때무에 Install automatically를 사용했습니다.

 

1.6. save 버튼 클릭


2. Deploy to container 설치

2.1. Jenkins 관리 > 플러그인 관리 메뉴 클릭

 

 

2.2. Deploy to container 검색 후 설치

 

 

2.3. Tomcat 계정 설정

tomcat/tomcat-users.xml 파일에 다음과 같이 사용자 계정과 권한을 추가

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">


<role rolename="tomcat"/>
	<role rolename="admin"/>
	<role rolename="manager-gui"/>
	<role rolename="manager-script"/>
	<role rolename="manager-jmx"/>
	<role rolename="manager-status"/>
	<role rolename="admin-gui"/>
	<role rolename="admin-script"/>
	<user username="admin" password="admin" roles="tomcat,admin,manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>

</tomcat-users>

 

 

 

 

3. 빌드 환경 설정

 

3.1. 새로운 Item 생성

아래 방법 참조

 

 

jenkins + svn 연동하는 방법

[사전 작업] subversion plugin 설치 1. Jenkins 관리 메뉴 클릭 2. 웹 페이지 접속 후 "새로운 Item" 메뉴 클릭 ​​​ 3. item name 입력 후 Freestyle project 클릭 4. 소스코드 관리(subversion) 설정 5...

yjh5369.tistory.com

 

 

3.2. Build > Add build step > Invoke top-level Maven targets 선택

 

 

3.3. maven 설정

  • Maven Version: 위에서 등록한 maven 선택
  • Goals: clean install (다른 옵션이 필요하다면 변경)

 

 

3.4. 빌드 유발 설정

빌드 유발에는 다음과 같은 항목들이 있습니다.

  • 빌드를 원격으로 유발
    • 외부에서 URL을 통해 빌드를 진행할 수 있도록 설정
  • Build after other projects are built
    • 다른 프로젝트를 빌드한 후 이어서 현재 프로젝트를 빌드
  • Build periodically
    • batch process를 설정해서 정해진 시간에 빌드
  • GitHub hook trigger for GITScm polling
  • Poll SCM
    • 형상관리 서버를 주기적으로 감시하여 변경된 사항이 존재할때 빌드 수행
    • 감시하는 시간은 Build periodically와 같은 양식으로 시간 설정

 

이 중에 저는 Poll SCM으로 설정했습니다.

시간 설정 방법은 다음과 같습니다.

 

시간 설정값은 crontab이나 쿼츠와 비슷하게 설정을 하면 되는데요, 기본 설정 포맷은 공백을 기준으로 구분하며 "분(minute) 시간(hour) 일(day of month) 월(month) 주(week)"  입니다.

  • 분(minute) : 0부터 59까지의 숫자를 입력합니다.
  • 시간(hour) : 0부터 23까지의 숫자를 입력합니다.
  • 일(day of month) : 1부터 31까지의 숫자를 입력합니다.
  • 월(month)  : 1부터 12까지의 숫자를 입력합니다.
  • 주(week) : 0부터 7까지의 숫자를 입력하며 0과 7은 일요일을 의미합니다.

위 값들이 입력되는 부분에 여러개의 값을 설정을 하기 위해서 다음과 같은 구분자들을 제공하고 있습니다.

  • * 을 지정하면 입력되는 값의 모든 범위를 허용 한다는 의미 입니다.
  • M-N 과 같이 값 사이에 '-'를 입력 하면 범위를 지정할 수 있습니다. ex) 2-4 = 2부터 4까지의 값
  • M-N/X 또는 */X : '/' 뒤에 오는 X값은 간격을 의미 합니다. 만약 시간 필드에 */2 이라고 설정을 하면 2시간 간격으로 실행을 하게 되니 2시 4시 6시..와 같은 시간이 설정 됩니다.
  • A,B,C, .. : 콤마를 이용해 여러개의 값을 열거하여 설정해 놓을 수 있습니다.

 

따라서 제가 설정한 H/15 * * * * 은 15분 간격으로 모니터링을 하라는 의미입니다.

 

 

 

 

3.5. 빌드 후 동작 설정

 

3.5.1. 빌드 후 조치 추가 > Deploy war/ear to a container 클릭

 

3.5.2. WAR/EAR files에 다음과 같이 입력

**/*.war

 

 

3.5.3. Add Container에서 Tomcat 9.x Remote 선택

 

3.5.4. jenkins 선택

 

 

3.5.5 Add Credentials에 Tomcat 사용자 계정 ID, Password 등록

 

 

3.5.6 Credentials에 위에 등록한 계정을 선택, Tomcat URL에 tomcat 주소를 입력 후 "저장" 버튼 클릭

 

 

 

 

[여기까지 하고 빌드 하면 Tomcat에 배포가 된 것을 확인할 수 있습니다.]

728x90
반응형
loading