You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ sudo /usr/sbin/alternatives --config java
그리고 난 후 2를 엔터한다.
3단계: ./gradlew 이용하여 빌드하기
git 프로젝트 폴더로 이동한다. 해당 폴더에는 src 폴더와 gradlew 파일이 존재하여야 한다.
다음의 명령어를 통해 gradlew에 권한을 부여한다. 참고로 gradlew는 gradle이 설치되지 않아도 프로젝트를 실행할 수 있도록 해주는 gradle wrapper라고 한다.
$ sudo chmod 777 ./gradlew
다음의 명령어를 통해 gradlew 빌드를 실행한다. 참고로 sudo ./gradlew test를 입력하면 테스트를 실시할 수 있다.
다음으로 빌드를 실행하면 테스트가 자동으로 실행되어 빌드 시간이 오래 걸릴 것이다. 이 때에는 sudo ./gradlew build -x test 명령어를 이용한다.
$ sudo ./gradlew build
빌드가 되고 나면 {프로젝트}/build/libs 안에 .jar 파일이 생기게 된다. 위의 경로로 아래의 명령어를 통해서 실행시킬 수 있다.
nohup 명령어는 터미널이 꺼지더라도 백그라운드로 톰캣이 실행될 수 있도록 해주는 명령어다.
nohup 없이 그냥 java -jar로 실행할 경우 터미널로 실행되지만, 터미널이 꺼지면 톰캣 서버도 멈추는 것 같다..
$ nohup java -jar 해당 .jar파일 &
아마 nohup: ignoring input and appending output to ‘/home/ec2-user/nohup.out 라고 뜨고 아무것도 안나올 텐데 잠깐 기다려준 후 인스턴스에 접속하면 정상적으로 처리됨을 알 수 있다. 꼭 8080 포트를 붙여서 접속하도록 하자.
만약에 그래도 안될 경우 nohup.out에 관련 오류가 기록되어 있을 것이다. 다음의 명령어를 통해 파일에 접근해서 오류를 확인해본다.
vim nohup.out
4단계: 재배포를 하고 싶을 경우 8080 포트를 kill하자
가끔 git pull해서 프로젝트의 수정사항을 가져온 후 다시 빌드하고자 하는 경우가 있을 것이다.
이 때에는 아래의 에러를 심심찮게 만날 수 있다.
***************************
APPLICATION FAILED TO START
***************************
Description:
Web server failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
8080 포트에서 동작하는 프로세스를 죽이라고 하니까 다음을 진행한다.
다음의 명령어를 통해 8080 포트에서 동작하는 프로세스를 확인한다.
lsof -i:8080
다음의 명령어를 통해 8080 포트에서 동작하는 프로세스를 죽인다. 리스트가 보이지 않을 때까지 반복한다.
당연히 기존 자바 프로세스를 먼저 죽여야 하는데요. jps 등의 명령을 활용하는 것도 좋아요.