본문 바로가기

AWS

AWS EC2 배포할때 .jar 파일 만들기 (html 파일의 /layout 주의하기)

다양한 방법들이 있겠지만, 나는 .jar파일을 만드는 방법을 추천해주고 있다. 남들이 건들지 않을 파일 형식으로 만들어야 하기 때문이기도 하지만, 두번째는 안정성이 높다는 점과 세번째는 해보니까 다른 방법은 안되더라....

추가로 배포하기 전에 알아둬야할 것이 localhost로 배포를 할때는 잘 되지만 서버에서 돌릴때 EC2의 경우는 리눅스 기반이라서 코드를 못읽는? 아니 리눅스에서 되는 코드가 있다고 하더라 그 부분까지 작성해보도록 하겠다.

인터넷 검색시 " <th:block th:replace " 왼쪽에서 문제가 발생되어서 찾아낸 것이다.

나의 경우는 스프링부트 작업을 할때 visual studio code를 활용하여 코드를 작성하게 되었다.

이와 같이 코드들이 입력되어 잇는 것을 확인 해볼 수 있는데 문제되는 부분은 로컬호스트로 돌렸을때 문제가 발생되어야 하는데 전혀 문제가 없었다. 아무튼 이부분에 대해서 미리 집고 넘어가자면 th:block 부분에 명시되어 있는 "/layout~~~" 이 문장에서 / 슬레시를 없애야 한다!! 아주 중요하다!! 이것을 없애는 것에 따라서 EC2에서 .jar파일을 실행했을때 컬러글씨가 뜬다. 만일 그렇지 않으면 뜨지도 않는다. 모든 html 파일에서 슬레시를 삭제하길 권장한다. 삭제를 한다고 해서 localhost에서 안된다는 것도 아니다.

 

아무튼 이제 jar파일로 변환하는 방법은 왼쪽 하단에 JAVA_PROJECTS라는게 보일 것이다.

내용만 보면 Export Jar라는 문구가 보일텐데 물론 슬레시를 없애고 해보지는 않았지만, 안된다고 가정하에 저 방법은 옳지 않은 선택으로 볼 수 있다. STS에서는 잘못 생성이 될 경우에는 생성 중에 문제가 발생되었다 하지만, VSCODE에서는 그런게 없다. 

 

참고로 아래처럼 vscode jar 만들기를 검색해보면 대부분 gradle이라든가 maven을 하라고 하는데 우리가 희망하는 것은 이미 만들어진 프로젝트를 .jar로 만드는 것이었기 때문에 봐도 안되는 경우가 크고 실제로 확장에 존재하지 않은 확장프로그램들도 존재하고 있다.

그래서 선택한 나의 방법은 STS 혹은 이클립스를 통해서 하는 방법인데 이클립스는 무거우니까 STS(Spring Tool Suite 4)로 진행하도록 하겠다.

이미 프로젝트를 STS에서 진행한 사람은 어느정도 건너뛰고 읽으면 되고 나처럼 vscode에서 작성 후 jar로 만들 사람은 봐주는게 좋을 것이다. vscode의 자바프로젝트 폴더를 STS에 import도 해줘야 하기 때문이다.

아래의 이미지를 보면 어떠한 프로젝트 폴더를 가져올 것인지 선택하는 부분이 있는데 아래의 브라우저를 선택해준다.

그리고 그래들과 셋팅 SRC 등이 있는 전체 폴더를 넣어주면 된다.

아래 부분은 옵션을 선택하는 것인데 이미 gradle이 있으니 무시하고 다음 단계로

위의 사진처럼 완성된 프로젝트를 임폴트 하겠다는 보고서이다. Finish로 마무리를 짓자.

이제 생성된 STS에서의 나의 프로젝트가 보이는데 기다려줘야 하는 시간이 필요하다. 오른쪽 아래에 bar가 계속 움직이면서 설정을 잡아주고 있는 것이다.

완료가 되었다면 Run - RunConfigurations를 클릭해준다. 

vscode에도 왼쪽의 Gradle Task가 있어야 하는데 보이질 않으니.... 있다면 나중에 찾아봐야겠다.

이제 add를 눌러보면 task가 나오는데 이를 bootjar로 변경해줘야 한다. 이유는 아직 모르겠지만 괜히 이름을 다른 것으로 해서 만들었다가 안되었다. 만일 본인이 처음이라면 add를 입력후 저 명칭을 그대로 써준 후 apply를 해서 run을 해줘야 한다.(bootjar로 하는 이유는 모르겠으나 생성된 파일 명에는 저런 단어가 들어간게 없는 것으로 보아 아마 확장자이름 즉 .exe 같은 역할이지 않을까 싶다.)

그렇게 된다면 우측 하단에 생성이 잘 되었다는 것을 확인할 수 있다.

(bootjar로 안했을 당시에 빨간색으로 되면서 생성되어지지 않았다.)

참고로 생성된 파일은 bike-0.0.1-SNAPTHOT 으로 되어있는데 bike는 어디서 바꾸는지 모르겠지만 뒤의 버전 명칭은 프로젝트 내의 guild.gradle을 통해서 업데이트 할때마다 입력을 해주면 되는 것으로 보인다.

이제 jar로 생성을 완료 했으면 어디에 생성이 되었을까?

자신이 진행하고 있는 프로젝트 폴더에서 확인을 할 수 있는데 프로젝트 내에 들어가면 build폴더 - libs 폴더 내에 있는 것을 확인할 수 있다.

vscode가 편하다고는 하지만 그래도 근본인 이클립스나 sts를 활용하는게 훨씬 좋은 선택지라고 생각한다.