본문 바로가기

Java For All/eClipse

Integrate the Eclipse Web Tools Platform and Maven

* 출처: http://www.devx.com/Java/Article/36785/0/page/4

--------------------------------------------------------------------
* 필요한 프로그램.
1) Eclipse: http://eclipse.org
2) Maven2: http://maven.apache.org
3) M2eclipse (Maven Plugin for Eclipse): http://m2eclipse.codehaus.org/

각 프로그램의 설치는 생략하도록 하겠습니다.


<간략한 사용 개요>
1. Maven project <tempForRef> 생성
2. Dynamic Web project <sample1> 생성 <-- 실제로 사용할 프로젝트
3. <termpForRef> Maven project에서 필요한 디렉토리(src, target)를 <sampl1> Dynamic Web Project 로 복사.
4. sample1 프로젝트에서 파일 수정 (.classpath, .settings/org.eclipse.jst.j2ee.internal.module.container)
5. sample1 프로젝트의 프로퍼티에서 JAVA EE Module Dependencies 창에서 Maven Dependices 체크
6. 필요한 라이브러치 추가 (Dependency Management)

--------------------------------------------------------------------

1. Maven 프로젝트 생성하기 (File→New→Other→Maven→Maven Project)

PageData
Page 1
Project Name tempForRef
"Create in Workspace" radio button 선택
Page 2
Group ID tempForRef
Artifact ID tempForRef
Version 0.0.1-SNAPSHOT
Packaging war
Description Leave blank or fill in with whatever is appropriate
Project Layout Ensure these checkboxes are checked: src/main/java, src/main/resources, src/test/java, src/test/resources, and src/main/webapp (추가)
Page 3 Ignore this page


2. 새로운 Dynamic Web Project 생성 (File→New→Other→Web→Dynamic Web Project)

PageData
Page 1
Project Name sample1
Project Contents Use default (For Directory)
Target Runtime Apache Tomcat v6.0
Configurations Default Configuration for Apache Tomcat v6.0
Page 2
Dynamic Web Module Selected by default
Java Selected by default
Page 3
Context Root sample1
Content Directory WebContent
Java Source Directory src

3. Enable Maven
sample1 프로젝트에서 오른쪽 버튼을 눌러 팝업메뉴에서 Maven→Enable Dependency Management 을 눌러 선택한다.
패키징에 war가 정상적으로 선택되어 있는 지 확인한다.

4. Create Maven Folder Structure
Navigator (Window→Show View→Other→General→Navigator)를 열고, maven 프로젝트로 생성한 tempForRef 디렉토리에서 src와 target 디렉토리를 선택/복사하여 dynamic web project에 복사를 한다.

혹은 폴더 만들기(File→New→Folder)를 이용하여 sample1 디렉토리에 아래의 폴더를 생성한다.
필요한 폴더는 아래와 같다.
1) src/main/java
2) src/main/resources
3) src/main/webapp
4) src/test/java
5) src/test/resources
6)
target/classes
7) target/test-classes

정상적으로 복사한 후에도 위와 같은 폴더들이 존재하는 지 체크하자.

5. Update Source Folders
Sample1 프로젝트에서 .classpath 화일을 연다. (Navigator View)
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
     <classpathentry kind="src" path="src"/>
     <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
     <classpathentry kind="con"          path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/>
     <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
     <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
     <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
     <classpathentry kind="output" path="build/classes"/>
</classpath>

노란색 바탕으로 된 라인을 아래와 같이 수정을 한다.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
     <classpathentry kind="src" path="src/main/java"/>
     <classpathentry kind="src" path="src/main/resources"/>
     <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
     <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>

     <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
     <classpathentry kind="con"
          path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/>
     <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
     <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
     <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
     <classpathentry kind="output" path="target/classes"/>
</classpath>

위의 파일을 수정한 이후에 Package Explorer View를 열고 .settings/org.eclipse.wst.common.component을 열고,
1) /WebContent 을 찾아 /src/main/webapp로 수정을 한다.
2) build/classes 을 찾아 target/classes로 수정을 한다.
3) 아래와 같은 라인을 찾아 지운다.

<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>

그러면 아래와 같은 화면을 볼 수 있다.

<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="sample1">
<wb-resource deploy-path="/" source-path="/src/main/webapp"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<property name="context-root" value="sample1"/>
<property name="java-output-path" value="target/classes"/>
</wb-module>
</project-modules>

Project Explorer View에서 /WebContent  디렉토리 안에 있는 META-INF and WEB-INF  디렉토리를 src/main/webapp 디렉토리로 이동(혹은 복사)을 한다. 그리고 나서 WebContent 와 build 디렉토리를 지운다.


6. Configuring JAVA EE Module Dependencies

프로젝트에서 오른쪽 버튼을 눌러, 프로퍼티 창을 연다.
JAVA EE MOdule Depedencies를 클릭하고, 오른쪽에서 Maven Dependencies 항목을 체크후 OK 를 누른다.

7. Dependency Management
프로젝트에서 오른쪽 버튼을 눌러, Repository Search (Maven→Add Dependencies)를 연다.
그리고 tomcat 이라고 입력을 한다. servlet-api.jar를 아래 창에서 찾아 클릭후 OK를 누른다.
pom.xml 파일을 찾아 열고, "source" tab을 연다.
아래 부분을 굵은 글씨 부분을 참고한다.

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>sample1</groupId>
  <artifactId>sample1</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <description></description>
  <dependencies>
 
  <dependency>
      <groupId>tomcat
</groupId>
      <artifactId>servlet-api</artifactId>
      <version>5.5.15</version>
      <scope>provided
</scope>
    </dependency>
   
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.4</version>
      <scope>test</scope>
    </dependency>
   
    <dependency>
      <groupId>displaytag</groupId>
      <artifactId>displaytag</artifactId>
      <version>1.1.1</version>
    </dependency>
   
  </dependencies>
</project>

servlet-api 같은 경우에는 maven을 이용하여 컴파일시에 필요하다.


8. Maven Run Configurations
메뉴바에서 "Open External Tools Dialog" 찾아 클릭을 한다.
Maven Build에서 "New launch configuration"을 클릭 한다.
  • Name: sample1.package
  • Base Directory: ${workspace_loc:/sample1}
  • Goals: package

위와 같이 입력을 하고, Run을 누르면 현재 프로젝트를 war 패키징 한다.