먼저 이클립스에 m2e 플러그인을 설치되있어야합니다.

설치가 되어있다면 플러그인리스트에 m2e플로그인이 표시됩니다.
메이븐 web project를 생성합니다.

프로젝트를 생성하면 아래와 같은 구조로 생성이 됩니다.

Create Resource Folder
기본적인 메이븐 구조에 맞게 있어야 하는 폴더가 안 만들어져 있습니다.
main/java
main/resources <- 이미 생성되어 있음
test/java
test/resources
폴더를 생성하고 main/webapp폴더는 삭제합니다.

Project Preperties 로 들어갑니다. (프로젝트에서 마우스 오른쪽 버튼 - Properties)
Java Build Path에 3개는 이미 추가되어 있으니(폴더도 없었으면서 -_-) 한개 빠진 폴더를 추가합니다.
Add Folder 버튼 클릭

남은 하나의 폴더(test/resources)를 추가합니다.

OK 후 Java Resources 쪽에 보면 4개의 폴더가 적용되어 있습니다.

Change JRE System Library
저는 JDK 1.5 가 없습니다. 1.6 을 사용합니다. 하지만 메이븐 프로젝트를 만들면 기본적으로 빌드를 1.5로 하게 되어 있습니다. 이클립스에서 알아서 1.6으로 해주지만 경고가 표시됩니다.

Project Facets 설정 에서 1.6 으로 바꿔줄 수 있지면 나중에 pom.xml 설정을 바꾸다 보면 다시 원상 복귀 됩니다.
해결방법은 pom.xml 에서 플러그인 부분을 아래와 같이 추가 후 저장합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <build> <finalName>maven.project</finalName> <!-- 이거 --> <plugins> <!-- 1.6 버전을 사용하고싶을때 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <!-- 1.7 버전을 사용하고싶을때 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> |
그러면 아래와 같이 에러가 나게 됩니다.

하라는대로 합니다. ㅎㅎ 프로젝트 오른쪽 버튼 클릭후 Maven - Update Project.

그럼 메이븐 프로젝트 선택하고 나옵니다. 현재 작업중인 프로젝트를 선택합니다.
그러면 이제 1.6 으로 돌아가게 됩니다. 물론 경고도 사라집니다.
Change Web Resource Location[선택]
처음 메이븐 웹 프로젝트를 만들면 웹 관련 폴더는 {프로젝트 루트}/src/main/webapp 에 있습니다.
이게 좀 소스 찾아 들어가려면 귀찮습니다. -_-;; 이 부분을 {프로젝트 루트}/webapp 로 변경하겠습니다.
이미 위에서 src/main/webapp 폴더는 삭제했습니다. 삭제하지 안았다면 삭제합니다.
프로젝트 바로 아래에 webapp, WEB-INF 폴더, web.xml(servlet 2.5) 파일을 생성합니다.

webapp 경로가 바뀌었으니 pom.xml 파일에 maven-war-plugin 설정을 추가합니다.
1 2 3 4 5 6 7 8 | <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <warSourceDirectory>webapp</warSourceDirectory> </configuration> </plugin> |
수정 후 저장을 하면 다시 Update Project 하라고 에러가 납니다.
아직 추가 설정을 더 해줘야합니다!!
Navigator 뷰에서 프로젝트를 본 후 .settings 폴더에서 두개의 파일을 수정합니다.

.jsdtscope - 블럭된 부분을 삭제합니다.
1 2 3 4 5 6 7 8 9 10 11 12 | <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src/main/webapp"/> <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject"> <attributes> <attribute name="hide" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/> <classpathentry kind="output" path=""/> </classpath> |
org.eclipse.wst.common.project.facet.core.xml - jst.web 버전을 2.5로 변경합니다. (자신의 web.xml 따라서 변경)
1 2 3 4 5 6 7 | <?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="jst.web" version="2.5"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="java" version="1.6"/> </faceted-project> |
모두 저장 후 Project Explorer 뷰로 이동 후 Maven - Update Project
프로젝트를 보면 Deployment Descriptor 가 표시 되었습니다.

Maven Install 이나 War Export 해보면 정상적인 구조로 말리는 걸 확인할 수 있네요~