Spring EC2 배포

홍준식·2024년 2월 25일

Intellij

Intellij 우측의 Gradle을 누른 후 build를 실행시킨다.

만약

Execution failed for task ':jar'.
Entry META-INF/LICENSE.txt is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/8.5/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

위와 같은 에러가 발생한다면

jar {
	duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

jar 부분에 위와 같은 라인을 추가하면 된다.

그러면 default로 build/libs에 jar 파일이 생성된다.
해당 프로젝트 명은 studit이기에 studit-0.0.1-SNAPSHOT.jar 와 같은 파일이 생성되었다.

$ java -jar build/libs/studit-0.0.1-SNAPSHOT.jar

위 명령어를 실행시키면 정상적으로 어플리케이션이 실행되는것을 확인할 수 있다.

EC2 파일 빌드

$ scp -i {pem 파일} {옮기려는 파일 ex) ./build/libs/studit-0.0.1-SNAPSHOT.jar} ec2-user@{해당 ip}:~

scp 명령어를 통해 jar 파일을 서버로 옮긴다.

$ nohup java -jar studit-0.0.1-SNAPSHOT.jar &

서버에 접속 후 nohup을 통해 jar 파일을 실행시킨다.

nohup을 통해 터미널 연결을 끊더라도 백그라운드에서 어플리케이션이 유지되도록 한다.

$ lsof -i :8080
COMMAND    PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    503841 ec2-user   21u  IPv6 1958195      0t0  TCP *:webcache (LISTEN)

서버가 실행되고 있는 포트에 대해 lsof 명령어를 실행시키면 java 프로그램이 실행중인것을 확인할 수 있다.

0개의 댓글