처음 maven 을 접했을때 그 생소한 디렉토리 구조에 적응하기가 참 힘들었다. 그간 공부한다고 꾸역꾸역 해보면서 많이 적응했지만 솔직히 두어단계나 더 들어간 디렉토리 구조로 인해서 이클립스의 네비게이션의 영역을 줄이거나 늘리는 일이 빈번해 조금 짜증이 나기도 했다.

변경해서 사용할 방법을 찾아보던 중에 토비님의 Maven의 default directory layout 변경하기 를 발견하고는 간단한 테스트 프로젝트를 만들어서 적용해보니 깔금하게 적용이된다.

root에 src, test directory 를 두고 resource 와 testResource 는 해당되는 source directory 에 포함시켜버리고 나니 한결 깔끔해보인다. 남은건 src/main/webapp directory 를 root로 가져오는건데 생각외로 간단하게 변경이 가능하다.

이클립스의 m2eclipse 플러그인을 통해 import 나 maven-eclipse-plugin 을 통해서 변환 후 디렉토리를 보면 이클립스 프로젝트 파일들이 생성되어 있는데 그 중에서 .settings/org.eclipse.wst.common.component 를 열어보면 내용이 다음과 같다.



Maven 의 pom.xml 에서 packaging 타입을 war 로 변경 후 다시 변환하니 다음과 같이 변경되어 있다.



webapp 의 디렉토리가 src/main/webapp 로 설정되어 있다. 수작업으로 webapp 로 변경 후 root directory 에 webapp directory  를 복사 후 이클립스 내부에서 테스트해보니 문제없이 가동한다. 실제 tomcat 서버에 올려보기 위해서 mvn package 명령을 내리니 다음과 같은 오류가 발생했다.

[INFO] Error assembling WAR: Deployment descriptor: D:\...\maventest\target\test-1.0.0\WEB-INF\web.xml does not exist.

이클립스는 변경된 webapp 를 인식했지만 메이븐은 인식하지 못하고 src/main/webapp 를 찾다보니 일어난 현상인거 같다.

메이븐에게 webapp 의 알려주기 위한 방법은 다음과 같다. POM 의 build - plugins 에 추가한다.



이후 mvn package 내리면 오류없이 완료된다.

TAG
Posted by Arawn Trackback 3 : Comment 0