
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
위 명령어를 실행시키면 정상적으로 어플리케이션이 실행되는것을 확인할 수 있다.
$ 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 프로그램이 실행중인것을 확인할 수 있다.