Intellij에서 Eclipse의 Auto publishing 기능 사용하기
얼마 전까지 SpringSource.org 에서 제공하는 STS 를 이용해서 개발해왔다.
그러다가 아는 분이 저렴하게 구매하신 인텔리제이intelliJ 라이센스를 넘겨받아 사용하기 시작하고 있다. 처음에는 인텔리제이의 강력한 리팩토링 기능이 마음에 들어서 STS에서 작성한 코드들에 대해서 리팩토링을 할 때에만 주로 사용해왔었는데, STS(현재 우분투 13.04에서 openjdk-7-sdk 를 사용하고, STS 3.2.0 에서 3.3.0으로 업그레이드하여 사용)에서 Interface 에 정의되어 있는 메소드를 자동완성시켜주지 않는 버그가 발생하면서 인텔리제이로 마음이 확 기울어져버렸다.
인텔리제이를 사용하면서 가장 아쉬웠던 것이 하나 있었는데, 이클립스에서 별다른 설정없이 사용했던 'Auto publicsing'이었다. 웹 프로젝트를 열어놓은 상태로 로컬 웹서버에 배포하여 테스트하면서 개발할 때, 클래스 파일이나 JSP 파일 등을 수정했을 때, 자동으로 컴파일되고 서버에 배포되는 기능이 인텔리제이에서 제공하지 않는다고 아쉬워했었다(다 방법이 있었다!).
위에서 보는 것처럼, 모듈의 Run/Debug Configurations 에서 'On frame deactivation' 항목을 'Update classess and resources'를 설정해 놓으면, 애플리케이션이 잠시 대기하고 있는 동안에 변경사항을 확인하여 변경된 클래스와 리소스를 갱신시켜준다.
그리고 실행할 때는 디버그Debug 모드로 실행시킨다.
혹은
왼쪽 하단에 있는 서버 항목 중에서 'Update Resources On Frame Deaction'을 클릭해서 활성화시켜도 된다. 이렇게 설정해두면, 애플리케이션이 대기상태에 들어가면 주기적으로 변동사항들을 확인하는 작업을 하면서 자동 배포가 된다.