Introduce
웹프로젝트 생성 후 추가적으로 해야할 작업을 정리합니다.
프로젝트를 생성하면 아래와 같은 구조로 생성이 됩니다.
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 에서 플러그인 부분을 아래와 같이 추가 후 저장합니다.
<build>
<finalName>maven.project</finalName>
<!-- 이거 -->
<plugins>
<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>
</plugins>
</build>
</project>
그러면 아래와 같이 에러가 나게 됩니다.
하라는대로 합니다. ㅎㅎ 프로젝트 오른쪽 버튼 클릭후 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 설정을 추가합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>webapp</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
수정 후 저장을 하면 다시 Update Project 하라고 에러가 납니다.
아직 추가 설정을 더 해줘야합니다!!
Navigator 뷰에서 프로젝트를 본 후 .settings 폴더에서 두개의 파일을 수정합니다.
.jsdtscope - 블럭된 부분을 삭제합니다.
<?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 따라서 변경)
<?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 해보면 정상적인 구조로 말리는 걸 확인할 수 있네요~