여기저기 메이븐이 많이 쓰이는 것 같아 이참에 삽질을 해봤습니다.
Maven은 소프트웨어 프로젝트 관리툴인데, 의존적인 라이브러리를 서버와 연동해서 쉽게 업데이트를 해주며, 컴파일 및 배포 과정을 최소화하며 자동으로 테스트를 할 수 있게 도와주는 뭐 그런 툴인 듯 합니다.

한마디로 나름 그냥 편하려고 만든거라는거-_-

라이브러리를 수동으로 복사해서 lib폴더에 쳐넣는 행위를 막고 자동으로 라이브러리를 업데이트할 수 있게 해주는 것만해도 큰 장점인 것 같습니다.

1. Maven 다운로드 및 설치
http://maven.apache.org/download.html 여기서 최신버전인 3.0을 받아서 압축해제
환경변수 Path에 maven디렉토리/bin폴더를 걸어두셔야 어디서든 mvn을 때릴 수 있기에 추가!
환경변수 MAVEN_HOME을 maven디렉토리홈으로 해서 추가!

2. m2eclipse설치
이건 이클립스에서 maven템플릿파일을 쉽게 생성할 수 있는 플러그인입니다.
eclipse에서 Help -> Install New Software -> Add해서 url을 http://m2eclipse.sonatype.org/sites/m2e/ 로 한다음에 Maven Integration for eclipse를 체크하고 설치하면 됩니다 ㄷㄷ

3. Mavan프로젝트 생성
이제 Maven프로젝트 생성을 합니다.
New -> Project 하면 Maven Project가 새로 생겼음.
선택하고, location에서 디폴트로하고 Next하고, 우린 webapp을 만들꺼니까 groupid가 org.apache.maven.archetypes이고, Artifact Id가 maven-archetype-webapp을 선택하고 Next!
Group Id는 패키지명으로 대충 com.mudchobo.springtest라고 하고,
Artifact Id는 프로젝트 이름이니까 대충 SpringTest로....-_-

그리고 이제 cmd쳐서 콘솔로가서 SpringTest폴더로 이동. 아래 커맨드발동!
[code]mvn -Dwtpversion=2.0 eclipse:eclipse[/code]
그러면 wtp용 프로젝트로 변환이 되어있을겁니다.
그리고 이상하게 Java Compiler가 1.4로 맞춰져있는데, 1.6으로 맞춥니다.
프로젝트Properties에서 Java Compiler에서ㅓ 1.6으로 맞추고, 아래 Use default compliance setting체크해주시면 됨 ㅇㅇ
그리고 Project Facets에서 Java를 6.0으로 바꿔주시면 됨 ㅇㅇ

4. 의존성 라이브러리 추가
pom.xml
[code]<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mudchobo.springtest</groupId>
  <artifactId>SpringTest</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>SpringTest Maven Webapp</name>
  <properties>
      <spring.version>3.0.5.RELEASE</spring.version>
  </properties>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>${spring.version}</version>
    </dependency>
    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>${spring.version}</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>SpringTest</finalName>
  </build>
</project>
[/code]
스프링 라이브러리 2개를 추가했습니다. 그러면 뭔가 웹에서 다운받으면서 라이브러리를 저장소에 저장해둡니다 ㄷㄷ 뭔가 알아서 처리하는 느낌!

5. 이제 스프링라이브러리를 쓰도록 web.xml수정 및 spring-servlet.xml추가!
web.xml
[code]<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Court Reservation System</display-name>

    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
[/code]
spring-servlet.xml
[code]<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
</beans>[/code]

6. Maven Dependencies 라이브러리 추가.

그냥 실행하게 되면 메이븐에서 읽어드린 라이브러리가 추가되지 않아 Eclipse에 있는 Server에 SpringTest프로젝트를 추가하면 ClassNotFoundException에러가 납니다.
[code]심각: Error loading WebappClassLoader
  context: /SpringTest
  delegate: false
  repositories:
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@1172e08
 org.springframework.web.servlet.DispatcherServlet
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet[/code]
그래서 저도 뭔가 라이브러리를 추가해야된다는 생각에 구글링을 해보니 방법이 있군요!

해당 프로젝트폴더에 .setting폴더에 있는 org.eclipse.wst.common.component파일
org.eclipse.wst.common.component
[code]<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java" />
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources" />[/code]위에 두줄 지우고,
[code]<dependent-module deploy-path="/WEB-INF/lib">
    <dependency-type>uses</dependency-type>
</dependent-module>[/code]3줄추가하고~

그리고 .classpath파일에 아래 클래스패스를 추가합니다.
.classpath
[code]<classpathentry exported="true" kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>[/code]
그러면 프로젝트properties에서 Java Build Path에서 Library를 보면 Maven Dependencies가 추가되어있을겁니다~ 여기에는 pom.xml에서 라이브러리 추가한 것이 들어있어요~

이제 Server에 추가한다메 시작하면 톰캣 에러없이 동작할겁니다.

7. war파일 만들기~
프로젝트에 Export해도 되고, mvn으로 명령어를 때려도 됩니다.
[code]mvn package[/code] 때리면 packaging이 war로 되어있어서 war파일이 생성되더군요.
물론 이과정에서 ftp에 배포라던지 그런게 가능한 것 같습니다. 좀 더 연구해보고!

PS. 갑자기 느끼는 생각인데, 이것보다 더 간편한 방법이 있지 않을까 싶기도하고....-_- 후.....

참고자료
http://blog.v-s-f.co.uk/2010/09/jsf-2-1-project-using-eclipse-and-maven-2/
http://maven.apache.org/plugins/maven-eclipse-plugin/

 
Posted by 머드초보
,
 

매우 간단한 예제를 실행해보도록 하자.

우선 File -> New -> Other 를 선택한다. 그런다음에 JAVA를 선택하고 더블클릭하면 하위 메뉴들이 나오는데 거기에 플러그인이 제대로 설치가 되었다면 Tomcat Project라고 생겼을 것이다.
사용자 삽입 이미지

Tomcat Project를 선택하고 프로젝트이름을 "HelloWorld"라고 칭해보자.
나머지 옵션은 디폴트로 하고 Finish를 클릭한다.

그러면 프로젝트가 생성이 되었는데 이제 클래스를 생성해보자.
클래스를 생성하기전에 패키지를 먼저 생성하자.
왼쪽WorkSpace에 WEB-INF/src 폴더에 오른쪽 마우스버튼을 클릭해서 package를 생성하자.
이름은 helloworld 라고 칭하자.
그다음 helloworld패키지에 new해서 class를 선택하여 클래스를 생성하자.
이름은 TestJava라고 하자.
사용자 삽입 이미지

Finish를 클릭한뒤 코드는 다음과 같이 해보자.
사용자 삽입 이미지
컨트롤+S를 누르면 저장된 뒤 class파일도 자동으로 생성해준다.

그다음은 jsp파일을 생성해보자.

최상위 HelloWorld프로젝트폴더를 클릭하고 new를 눌러서 other를 선택한다.
Web이라는 폴더에 JSP가 있다. 클릭해서 test.jsp란 이름으로 생성하자.

코드는 방금 생성한 class에서 Method라는 메소드를 불러오도록 짠다.
사용자 삽입 이미지

제대로 코딩했다면 이클립스 메뉴에 스타트톰캣을 한다. 톰캣을 시작한뒤 익스플로러 창에다가

http://localhost:8080/HelloWorld/test.jsp 라고 치면 'Hello World!' 라고 뜰 것이다.

 
Posted by 머드초보
,
 

우여곡절 끝에 몇시간의 삽질 끝에 끝냈다.

톰캣플러그인을 설치하면 이클립스에서 톰캣을 실행하고, 중지하고, 재시작을 할 수 있는 메뉴와 아이콘이 생긴다. 그리고, JSP를 프로그래밍하기 쉬운 프로젝트를 생성할 수 있다.

기본적으로 자바를 설치해야한다. 6u2! 새로운 버전이 나왔다-_-; 아래 사이트에서 받자.
http://java.sun.com/javase/downloads/index.jsp

그다음 준비물은 WTP2.0(Web Tool Platform).
이클립스인데 웹 개발 툴을 올인원 다 모아둔거 같다. 잘은 모르지만 사람들이 좋아하는 올인원이라는 단어가 들어가있어서 마음이 끌리게 한다(모든것이 한개에 있으니 기분이좋다-_-;).
http://europa-mirror1.eclipse.org/webtools/downloads/ 이곳에서 받자.

그다음 준비물은 톰캣이다. 톰캣을 설치하지 않은 사람들은 아래 사이트로 가서 받아서 설치.
http://tomcat.apache.org/download-60.cgi

그다음은 톰캣 플러그인이다. 이것은 이클립스를 설치한 후에 압축을 풀어서 eclips\plugin폴더에 넣어버리자. http://www.eclipsetotale.com/tomcatPlugin.html

다 설치가 완료 됐으면, 이클립스를 실행해보자.

이클립스에 tomcat이라는 메뉴가 생겼을 것이다. 메뉴를 살펴보면, 시작과 중지, 재시작 메뉴가 있을 것이다. 우선 시작하기 전에 톰캣환경설정을 해야한다. 환경변수를 추가하자.

JAVAHOME=설치한 자바폴더 지정.
CATALINA_HOME=설치한 톰캣폴더 지정.

저렇게 환경변수를 지정했으면 톰캣이 정상적으로 실행이 될 것이다.

사용자 삽입 이미지

그럼 간단한 JSP예제를 살펴보도록 하자-_-;
예제바로가기
 
Posted by 머드초보
,