1 minute read

클래스 파일이 생성되는 위치

❗이클립스에 (메이븐) 방식 💡 프로젝트 우클릭 > Build Path > Configure Build Path… > Source 하단 > Default output folder에 빌드 완료된 파일들이 보인다.

❗이클립스에 (톰캣연결 후 배포) 방식
💡 현재 workspace 폴더 > .metadata > .plugins > org.eclipse.wst.server.core > tmp0~N > wtpwebapps에 프로젝트별 폴더로 복제된다.

❗불편한점
💡 위험도 높음
maven 환경에서의 기본값은 각 프로젝트별 target 폴더입니다.

톰캣을 따로 설치해서 war파일만 직접 톰캣에 넣어주는 경우엔 각 프로젝트별 target 폴더에서 war파일을 꺼내와 각 톰캣 폴더(예시- apache-tomcat-8.0.47)의 webapps 폴더에 넣어줍니다.

이 과정이 번거롭기에 Jenkins라는 자동화 툴을 사용해 버튼 하나 누르면 target폴더에서 war를 복사해 톰캣 폴더에 붙여넣고 재부팅 하도록 스크립트를 작성해서 사용하기도 합니다.

CASE1. 프로젝트 구조 그대로 배포

❗설명
💡 로컬에서 IDE로 작업하고 build 시 생성 되는 class 파일을 서버에 배포 (예: WEB-INF/classes)
💡 프로젝트 구조가 매우 직관적이고 그대로임.

❗불편한점
💡 위험도 높음

CASE2. war 파일로 배포

❗설명
💡 로컬에서 작업한 JSP, JAVA 파일을 통째로 WAR로 만들어서 FTP 업로드

❗불편한점
💡 JSP파일하나만 수정을 해도 항상 전체파일을 WAR로 묶어야 하다보니 굉장히 불편.
💡 개인적으로 불편하더라도 WAR로 배포하는게 정석이라고 생각. WAR로 배포하면 파일 단위로 배포이력관리 용이(롤백 등..)

❗특정 파일만 수정방법
💡 요약: WAR압축을 풀고 변경된 class파일을 찾아서 올리고 톰캣 재시작.

  1. 톰캣 중지
  2. war 파일 삭제
  3. 디플로이 된 폴더 내 해당 패스에 xml ,class 파일 덮어씌움
  4. 톰캣 재시작 혹시 webapp 밑에 root 안에 디플로이 된 파일 있다면 모두 삭제..

CASE3. war 파일로 배포(메이븐 사용)

❗설명
💡 로컬에서 maven 빌드 후 war파일을 배포
💡 서버에서 maven 빌드 후 war파일을 배포

킨스와 같은 CI툴을 이용한 배포
git, svn과 같은 형상관리 시스템을 통해 CI서버에서 빌드를 하고 해당 빌드 결과를 쉘을 통해 서버에 전송하여 배포 하는 방법

음.. 그리고 어떤곳에서는 src폴더를 따로 관리를 하며 java파일을

업로드 하고 서버상에서 빌드를 하여 jar파일을 생성해서

도큐먼트루트에 WEB-INF/lib/ 폴더에 복사해서 적용을 하더군요..

 

그리고 어떤곳에서는 CVS경로로 파일을 커밋하고 서버상에서 그대로 빌드를하고

WAS(웹스피어)를 리스타트하면 적용이 되도록 구성을 해놓은곳도 있었구요..

 

아무래도 제일 편했던건 CVS로 커밋 하고 빌드를 해서 적용하는쪽이

FTP로 파일을 업로드하는 번거로움도 없애줬고

수정한파일을 빼먹고 올리지않는 실수도 미연에 방지가 되고해서

가장 괜찮았던것 같거든요..

 

보통 다른분들은 환경을 어떻게 구성을 해놓고 작업을 하시는지 궁금해서

글을 올려봅니다..

그리고 제가 괜찮은것 같다고 한 방법에 어떤 문제점이 있는지도 궁금하고요..

 

조언부탁드립니다..

 

ps. http://www.okjsp.pe.kr/seq/142524

요 질문글도 한번 봐주시면 감사하겠습니다..ㅠㅠ

Leave a comment