[SpringBoot] Jar 파일 생성 및 서버 배포

Intellij 와 Gradle 을 기준으로 하였습니다.

Jar 파일 추출하기

인텔리제이 오른쪽 툴바를 보면 Gradle 메뉴가 있습니다.
Gradle 을 열어보면 여러가지가 나옵니다.

펼쳐서 보면 Tasks > build > bootJar 가 있습니다.
bootJar 를 더블클릭해줍니다.

build > libs > 프로젝트명-버전-SNAPSHOT.jar 가 생성됩니다.
이 파일을 갖고 이제 서버에서 기동시키면 됩니다.

Jar 파일 서버로 이동

Jar 파일을 서버에 기동시키려면 당연히 서버로 Jar 파일을 옮겨야 합니다.
여러가지 방법이 있지만 제일 간단하게는 파일질라(FileZila) 같은 SFTP 툴을 사용하는 것 입니다.
저는 파일질라을 사용하였습니다.
서버에 로그인을 해주고 jar를 이동시킬 디렉토리로 이동해줍니다.

원하는 파일을 마우스로 옮기기만 하면 옮겨집니다.(엄청 편하죠?)

JDK 설치

이제 서버를 기동해볼 차례입니다.
일단 Jar 파일을 실행시키려면 서버에 Java 가 설치되어있어야 합니다.
(저는 jdk 17이 필요하기 때문에 17로 설치하였습니다.)
우분투 기준 명령어 입니다.

sudo apt-get install openjdk-17-jdk

설치가 완료된 후 java -version 을 해봤을때 버전이 잘 나온다면 잘 설치된 것입니다.

Jar 실행

이제 Jar 파일을 실행시켜서 서버를 기동해볼 시간입니다.

nohup java -jar 파일명.jar &

nohup 은 백그라운드에서 서버가 계속 실행될수 있게 하는 명령어 입니다.

실행이 잘 되었다면 숫자하나가 찍힙니다.
이것은 PID 입니다.

프로세스 확인 및 킬

잘 기동되고 있는지 확인해봅시다.

ps -ef | grep 파일명.jar

해당 명령을 해보면 실행될때 나왔던 PID 가 그대로 나오는걸 확인할 수 있습니다.
잘 기동되고 있네요.
그렇담 포트 확인도 해볼까요?

netstat -an | grep 해당포트

저의 jar 는 15001 포트를 사용하도록 하였기 때문에 15001 로 서버가 올라간걸 확인할 수 있습니다.
잘 작동되고 있네요.
그렇담 이걸 종료하고 싶으면 어떻게 해야할까요?

kill -9 해당PID

kill 이 잘 되고 15001 포트를 확인해보면 잡히질 않는게 확인됩니다.
잘 종료가 되었다는 뜻 입니다.

이렇게 직접 다 jar를 옮기고 실행시켜봤지만
나중에 이걸 다 자동으로도 되도록도 설정해보겠습니다.

Leave a Comment