본문 바로가기
시행착오/Spring Boot

[Spring Boot] 3. CentOS7 Spring Boot jar 배포

by 성동원 2023. 9. 20.
시작하기 앞서

 

물론 centos 내에서 프로젝트를 생성하고 등등을 할 수 있겠지만 이전전 글 을 봤을 때

 

https://dongwoning.tistory.com/4

 

[Spring Boot] 1. 테스트 프로젝트 만들기

테스트 프로젝트를 만들어 보자. https://start.spring.io/ 위 링크에서 보통 만든다고 하더라. 나는 intellij 로 개발을 하여서 intellij에서도 spring boot 프로젝트를 생성 할 순 있는데, 아무럼 어떰. 위 링

dongwoning.tistory.com

 

window에서 간편하게 웹사이트에 접속을 해서 프로젝트를 만드는 것보다 훨씬 귀찮고 어렵고 잘 안 될 것 같다.

그래서 나는 우선 이것만 보려한다.

 

CentOS 서버 상에서 Spring Boot 웹서버 열리는가 ?

 

그래서 나는 정말 간편하게 WinSCP 프로그램을 이용할 것이다.

 

 

그냥 간단하게 설명하면, linux에 간편하게 window에 있는 폴더 및 파일을 옮길 수 있는 프로그램이다.

 

그래서 나는 다음과 같이 demo 폴더를 옮겼다.

 

 

위 spring boot 1편에서 한 것처럼 웹사이트에서 프로젝트를 만든 폴더를 WinSCP로 download 디렉토리가 있는 디렉토리에 옮겼다.

WinSCP 사용법을 모르거나 궁금하면 댓글로 남겨주면 따로 블로그를 작성하도록 해보겠다..

 

 

 

현재 위치는 다음과 같다.

 

# 현재 디렉토리 상태에서
mvn clean package

 

위 명령어를 작성하면 뭐 엄청 다운받고 난리 난다. 막 파파팍 올라간다. 끝까지 기다리고 있으면 됨.

 

그리고 나서 마지막에.

 

 

이라고 나오면 성공.

 

# target 디렉토리로 이동
cd target

# 잘 성공 됐으면 .jar 확장자 가진 파일이 생성되어 있을 것임.
java -jar demo-0.0.1-SNAPSHOT.jar

 

 

위 와 같이 실행 되면 잘 서비스가 올라 간 것이고, 테스를 진행해보면 된다.

 

브라우저에

 

http://[서버의아이피]:8080

 

 

잘 뜬 것을 확인 가능!

 

 

 


뻘 짓 

intellij 에서나 다른 개발환경에서나 어 쨋든 간에 window에서 build 한 jar 파일을 WinSCP를 통해서 서버에 올렸다고 가정하자.

 

왜냐하면 도대체 로컬환경에서 개발 후에 어떻게 서버에 옮겨서 배포하냐고, 

 

코드 전체를 올리는 것도 아닐 테고 왜냐하면 그런 비효율적인 일을 하지 않을테니까.

 

그때 당시 나의생각) 아하 ! 그래서 개발툴에서 jar 파일로 빌드해준 것을 가지고 고 것만 서버에 올려서 java -jar ~~~.jar 실행시키면 spring boot가 실행되서 웹서비스가 되는 거구나!! 했음.

 

어쨋든

 

 

이렇게 spring이 시작하자마자 끝나버림.

 

13:07:27.575 [main] INFO com.example.demo.DemoApplication -- Starting DemoApplication using Java 17.0.8 with PID 6970 (/home/fiq/demo/demo/demo/demo.jar started by fiq in /home/fiq/demo/demo/demo) 13:07:27.582 [main] INFO com.example.demo.DemoApplication -- No active profile set, falling back to 1 default profile: "default" 13:07:29.202 [main] INFO com.example.demo.DemoApplication -- Started DemoApplication in 1.946 seconds (process running for 2.429)

 

이거 진짜 아무도 알려주는 사람이 없었음. 아무리 검색해봐도 나오질 않아.

왜그런지 알고나면 이해가 가기도함..

 

  1. 내가 이번에 해보면서 느낀거는 다음과 같음.
  2. 서버코드를 어쨋든 다 올림.
  3. 서버내에서 mvn clean package 진행함.
    1. 여기서 중요한게, pom.xml 파일이 있는 곳에서 진행해야 됨.
    2. mvn clean package 자체가 pom.xml을 읽어서 만든다고 함.
  4. target 안에 있는 jar를 실행시킴.
  5. target 안에 있는 jar는 pom.xml에 작성된 <version></version> 이름이 들어가 있음.
  6.  

 

어쨋든 위 와 같은 것을 경험하며 습득을 하게 되었다.

 

jar 파일을 가지고 spring boot를 실행 시키려고 했으나.

실행하자마자 꺼지고, 이 부분에 대해서는

 

jar 파일이 뭔가 이상했고 또 만들기에도 잘 만들어 졌는지 조차 모르겠으나 어쨋든 가장 편한건 서버에서 진행 해야 된다는 것이다.

 

그렇다면!

 

코드를 매번 복사 붙여 넣기로 옮기라고 ??

 

이 부분은 다음편에서.