개요
spring boot 프로젝트는 jar 또는 war 파일로 배포할 수 있습니다.
- jar 파일로 배포하는 경우 : 내장된 톰캣서버 쨰로 배포할것이면 jar로 배포합니다.
- war 파일로 배포하는 경우 : 이미 WAS환경이 존재해 내장 톰켓서버를 빼고 배포하려면 war파일로 배포하면 됩니다.
그리고 빌드 관리도구(Maven, Gradle)에 따라 배포하는 방법이 다릅니다.
저는 Gradle을 사용하므로 Gradle 방식으로 배포하는 방법에 대해서 기술하겠습니다.
1. JAR 파일 빌드
릴리즈 전 jar파일을 만들어야 합니다.
jar 파일을 만드는방법은 IDE를 사용하는 방법과 CLI로 terminal에서 진행하는 방법이 있습니다.
1-1.IDE 사용
inteliJ
alt + alt 로 Run Anything이 뜨면 gradle bootjar을 찾아 실행합니다.
정상적으로 실행됬다면, Run 화면에 다음과 같이 표시됩니다.
이후 프로젝트 폴더의 build/resources 폴더 내에 jar 파일이 다음과 같이 생성됩니다.
Eclipse
제가 InteliJ를 사용해서... 이클립스는 잘 모르겠습니다 ㅎ... 아래 블로그를 참조하시면 좋을것 같습니다.
1-2. CLI 사용
- jar 파일 필드하기
프로젝트 폴더로 진입 후, gradlew.bat build를 입력하면 build폴더가 생성되며, 내부에 jar파일이 생성되어 있습니다. - jar 디렉토리 초기화(jar 삭제)
프로젝트 폴더로 진입 후, gradlew.bat clean을 입력하면 build 폴더가 삭제됩니다.
2. 서버에서 jar파일을 실행시켜 배포
2-1. 포그라운드 배포
java -jar [jar_file_name].ja
프로세스가 포그라운드에서 실행되기 떄문에 종료를 하거나 로그아웃을 하면 프로세스가 종료됩니다. 테스트용도로 배포하기 좋은 방법입니다.
2-2. 백그라운드 배포
nohup java -jar [jar_file_name].jar &
위의 명령어로 jar 파일을 실행시킨다면, 프로세스가 백그라운드에서 실행되게 됩니다.
따라서 사용자가 사용을 종료하거나 로그아웃을 해도 프로세스가 종료되지 않습니다.
* nohup으로 jar를 실행하게 되는 경우 jar 실행에 대한 로그는 nohup.out 파일에 쓰여집니다.
무작정 배포하기 전에 java application이 process에서 돌고있는지 확인해야겠죠? 다음의 명령어를 사용하면 됩니다.
ps -ef | grep java
이렇게 뜰건데, 두번째 컬럼이 PID입니다.
kill -p [pid]
로 종료시킬 수 있습니다.
일반 ps -ef시 결과(참고)
'IDE & Framework > Spring' 카테고리의 다른 글
[단축 URL 프로젝트 URLumberjack] - 기술 스택 정의 (0) | 2023.04.28 |
---|---|
[단축 URL 프로젝트 URLumberjack] - devOps 정의 (0) | 2023.04.24 |
[Spring] MyBaits Insert 후 ID 받기 (짧) (0) | 2022.05.23 |
[Spring] 관념지향 프로그래밍(Aspect Oriented Promgramming) (0) | 2022.05.03 |
Spring DI, IoC (0) | 2022.05.03 |