상세 컨텐츠

본문 제목

[springboot] 스프링부트 jar 빌드 & 서버에 배포 및 실행하기

develop/server

by devcon 2023. 5. 17. 10:23

본문

728x90
반응형

 

 
 오늘은 지난번에 스프링부트로 생성했던 프로젝트를 빌드해서
오라클클라우드 인스턴스에 만든 우분투 서버에 배포하고 실행해보자
 

지난번 작업한 스프링부트 프로젝트 화면

내가 만든 프로젝트는 gradle을 이용한 프로젝트이고
빌드 할때 gradle 도구에서 하거나 명령어로 빌드할 수 있다

상단메뉴바에서 gradle 활성화

인텔리제이기준으로 gradle 도구가 활성화되어있지 않다면
상단 메뉴바 view(보기) 에서 gradle을 선택해 활성화 하자

gradle 도구창 - bootJar
gradle 도구창 - build

jar 파일 생성은
1. gradle 도구를 통한 빌드 생성
2. 터미널에서 명령어로 빌드 생성
두가지로 모두 빌드할수 있다

gradle 도구에서도 bootJar와 build  두가지로 모두 생성이 가능하다

728x90

gradle - clean


먼저 gradle 도구를 이용해서 빌드를 해보자

빌드를 하기전에
이전에  로컬에서 실행하면서 생겼던 빌드 파일이 남아있을것이기 때문에 clean을 먼저 하고 시작한다

프로젝트 패키지 모습

프로젝트 패키지를 보면 clean이 되어 build 디렉토리는 보이지  않는다
gradle  2가지 방법을 통해 빌드를 해보면

gradle - bootJar 후 모습
gradle - build 후 모습

프로젝트패키지를 보면 build 디렉토리가 생기면서 정상적으로 빌드가 된것을 확인할 수 있다



두번째로  터미널을 이용하여 빌드를 해보자
내 기준으로 인텔리제이 터미널을 사용해보겠다
os나 프로그램이 다른경우
Mac 기준으로 Terminal 앱을 이용하거나
윈도우 기준으로 command나 powershell등을 이용 가능하다

단, 터미널 등을 별도로 사용하는 경우에는 꼭 터미널 경로를 지금 열고있는 프로젝트 루트경로로 맞춰줘야 한다!!

상단메뉴바에서 terminal 활성화

인텔리제이에서 터미널이 보이지 않는다면
성단메뉴바에서 gradle 도구 활성화 했던것과 동일하게 터미널을 활성화 해주자

명령어로 gradle 클린

gradle 도구로 빌드했을때와 동일하게 먼저 빌드된 내용을 지워주기 위해 clean을 먼저해주자

 

# Mac
./gradlew build 
./gradlew clean

# windows
gradlew.bat build
gradlew.bat clean


# permission denied: ./gradlew  
chmod +x gradlew

 
gradlew (윈도우는 gradlew.bat) 파일에 대해
permission denied: ./gradlew  처럼  권한이 없다고 나오는 경우
위에 명령어를 참고하여 권한을 수정해주자
 

명령어로 빌드가 완료된 모습

 

 
clean이 잘 되었으면 이제 명령어로 build를 해보자
빌드가 잘 되었다면
프로젝트 경로-build-libs 를 확인해보자
프로젝트명+버전+스냅샷.jar라는 파일이 생겨있다

 


이제 이 파일을
오라클클라우드 인스턴스에 만든 내 우분투 서버를 통해 실행 해볼 차례다




 

 

[Oracle Cloud] 오라클 클라우드 인스턴스 생성

오라클 클라우드를 사용하기 위한 계정 만들기에 성공했다면 이제 한시름 놓고, 고성능의 서버는 아니지만, 평생 무료로 쓸수있는 개인 클라우드 서버 구축을 천천히 진행해보자! [Oracle Cloud] 오

devconq.tistory.com


인스턴스를 생성하고 만들었던 우분투 서버에 접속해보자
나는 Mac기준으로
termius 앱을 통해 sftp에 접속했다

타 앱이나 프로그램으로 접속해도 무관하며
사용하기 편한 프로그램으로 접속하면 되겠다

sftp가 되는 프로그램이라면
파인더(윈도우탐색기) 를 사용하는 것처럼 편리하게 파일을 업로드 할 수 있다

termius앱을 통해 sftp로 uubuntu서버에 접속한 모습

 

termius앱 - sftp - ubuntu 디렉토리 모습



우분투 서버로 접속하니 기본 위치인 home > ubuntu 디렉토리에서 시작한다
나는 dev 라는 이름으로 디렉토리를 추가해줬다
새로 만든 디렉터리로 이동하여
앞서 빌드했던 jar파일을 드래그앤드랍으로 편리하게 업로드 했다

jar파일 드래그앤드랍
jar파일이 업로드 된 모습

 
 
내가 빌드한 파일이 잘 업로드 된 걸 볼 수 있다

이제 이 jar파일을 실행해보자

 

# 경로 이동
cd ./dev

# ssh가 활성화일때만 실행
java jar 파일명.jar

# ssh가 종료 되어도 백그라운드에서 계속 실행
nohup java jar 파일명.jar

SSH 접속한 모습

 

SSH접속하여 스프링부트 jar 파일 실행 모습

우선 ssh로 서버에 접속하자
경로를 확인하고 내가 만든 디렉터리로 옮겨가자

명령어로 확인해보면 jar 파일이 확인된다

이제 진짜로 실행해보자 !!! 


 

아이피주소:8080 포트로 접속한 모습
아이피주소:8080/hello 접속한 모습

 

브라우저에서 아이피주소에 8080 포트로 접속해보니

로컬에서 테스트 했을 때와 같은 white Label  화면이 뜬다

놀라지 말고 우리가 맵핑주소로 등록해뒀던 /hello 로 접속해보자

 

아이피주소:8080/hello로 접속해보니 로컬테스트때와 동일하게 

리턴받은 텍스트가 브라우저에 출력된다 

성공이다

 

[spring boot] 스프링부트 프로젝트 생성 & 실행 (feat. intelliJ)

👍 오늘의 주제 : 인텔리제이에서 스프링부트 프로젝트 생성해서 실행해보기 ✅ Spring Boot? 👉 스프링 프레임워크의 일종으로, 스프링을 사용하여 웹 어플리케이션을 개발할 때 필요한 여러 설

devconq.tistory.com

 

SSH에서도 정상적으로 로그가 확인된 모습

SSH에서도 확인해보면  로컬에서 run했을때 로그가 찍히던 모습과 동일하게 

로그가 남는것을 확인할 수 있다

SSH에서 jar 실행 종료 후 접속이 되지 않는 모습

실행중인 스프링 부트를 종료하기 위해서는 SSH접속 화면에서 ctrl + c 를 눌러 바로 종료도 가능하고 

그렇게 실행중인 스프링부트를 종료한다면 

브라우저에서 다시 동일 url로 접속시 연결 불가 화면을 확인 할 수 있다

 

여기까지 해서 오라클 클라우드 인스턴스 생성으로 ubuntu 서버를 만들고 

ubuntu 서버 환경에서 스프링부트 프로젝트를 실행까지 해볼 수 있었다

 

 

728x90
반응형

관련글 더보기

댓글 영역