갈릴레오에 Spring IDE를 설치한 다음 MyEclipse로 작업하던 프로젝트를 갈릴레오 프로젝트로 변환했다. 다음은 간략하게 정리한 변환 과정이다.
-
먼저 프로젝트에 사용할 WAS를 등록한다.
프로젝트를 먼저 생성해도 상관은 없으나 먼저 만드는 쪽이 프로젝트 설정에 편하다. -
다음 동적 웹 프로젝트(Dynamic Web Project)를 새로 생성한다.
원래는 기존 프로젝트의/.project
파일을 수정하려 했으나/.settings
디렉터리 아래의 설정 파일이 엉키는 바람에 깨끗한 빈 프로젝트에서 시작하기로 했다.
프로젝트 생성 시 대상 런타임(target runtime)과 서블릿 버전 등을 설정한다. 마지막 페이지의 컨텐츠 디렉터리는 패키지 탐색기(Package Explorer) 에서 직접 설정이 안되므로 주의한다(실수한 경우/.settings/org.eclipse.wst.common.component
파일에서 직접 수정할 수 있다). -
새 프로젝트에 스프링 빌더와 네이처를 추가한다.
패키지 탐색기의 문맥 메뉴에 있는 설정(Configure)에는 스프링 프로젝트로 변환하기가 없으므로/.project
파일을 직접 수정한다. 스프링 프로젝트는 동적 웹 프로젝트와 달리 부가 설정 파일이 없어서 편하다.
아래는 각각 추가할 빌더와 네이처 코드다.<buildCommand> <name>org.springframework.ide.eclipse.core.springbuilder</name> <arguments> </arguments> </buildCommand> <nature>org.springframework.ide.eclipse.core.springnature</nature>
-
소스 파일을 복사한다.
이때 위에서 준비한 마침표로 시작하는 설정 파일 및 디렉터리를 덮어쓰지 않도록 주의하자. -
마지막으로 빌드 설정을 한다.
목표는 간단하지만, 실제 해보면 이런저런 문제가 발생했다.
-
먼저 스프링 라이브러리가 없어 빌드 오류가 나는 경우가 있다. 이는 Spring IDE는 MyEclipse와 달리 관련 라이브러리가 내장되어 있지 않기 때문이다(이 때문에 Maven을 잠깐 고려했으나 배보다 배꼽이 커지는 관계로 포기했다). 해결책은 배치된 MyEclipse 내장 라이브러리를 복사한다. 대표적으로 스프링 라이브러리와 하이버네이트 라이브러리가 있다. 단, 해당 라이브러리만 복사하면 의존성 문제가 생기기 때문에 기존 MyEclipse 프로젝트가 배치(deploy)된 상태에서
/WEB-INF/lib
디렉터리를 통째로 복사해 오는 게 속 편하다. 라이브러리를 추가한 다음 필요한 라이브러리는 빌드 패스에 추가한다. 패키지 탐색기에서 Web App Libraries라고 다른 참조 라이브러리와 같은 아이콘을 가진 라이브러리 묶음이 있는데 이는 빌드 패스와 다르다. Commons DHCP 등 소스 및 스프링 설정에서 직접 참조하는 라이브러리를 추가하자. -
또 동적 웹 프로젝트 생성 시 서버 런타임 라이브러리 설정에 1번과 2번 순서가 바뀌는 등 문제가 있으면
HttpServletRequest
등 서블릿 관련 라이브러리를 못 찾는 경우가 있다. 이때 프로젝트의 빌드 패스 설정에서 라이브러리 탭에 들어가 서버 런타임(Server Runtime) 라이브러리를 추가하면 된다.
위에서 언급하지 않은 자잘한 문제가 많았지만 대부분 위 단계만 거치면 프로젝트를 원활히 변환할 수 있을 것이다.