close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

여기저기 메이븐이 많이 쓰이는 것 같아 이참에 삽질을 해봤습니다.
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/

번호 제목 글쓴이 날짜 조회 수
공지 소스자료는 직접 올려주세요 게임존 2017.06.06 578
276 BDO 영어 클라이언트 인터페이스 file Yireeli 2024.04.12 13
275 베노미 인존 2024.03.04 52
274 게임 서버 클래스값 인존 2024.03.04 70
273 던파 CT입니다 [2] file 꺼즈 2024.02.04 391
272 포토샵 꿀팁 아가입니다 2024.02.04 35
271 블소 아이템 코드 한글입니다, file 팡234 2023.12.03 241
270 블소 신석지급방법 입니다. file 팡234 2023.12.03 105
269 블소 아이템 코드 정리해봤습니다. file 팡234 2023.12.03 113
268 블소 아이디 생성방법입니다 file 팡234 2023.12.02 114
267 프로젝트 신루 NPC스크립트2 [4] 자택경비 2023.11.06 101
266 프로젝트 신루 NPC 스크립트 작성하기 자택경비 2023.10.22 37
265 프로젝트신루 전직NPC추가하기 [7] file 자택경비 2023.10.17 91
264 NPC 추가 및 스크립트 추가 [2] file 자택경비 2023.10.17 70
263 최강의군단 신규(NightWalker)나이트워커 스크립트 [2] file 잼과베이컨 2023.07.31 209
262 이터널시티(EternalCity)1_ 스크립트 [1] file 잼과베이컨 2023.07.31 321
261 소울워커(SoulWorker) 스팀 asm 스크립트 file 잼과베이컨 2023.07.31 128
260 아바(A.V.A) AOB, ASM 스크립트 file 잼과베이컨 2023.07.31 56
259 데카론 한글 던전리스트 file 일루션 2023.06.21 134
258 데카론 한글 맵리스트 file 일루션 2023.06.21 58
257 스톤에이지 8.0 서버 소스 file 김철수12 2023.05.31 335
256 천년 상승무공 자동지급 애꾸형님 2023.05.10 163
255 천년 무공 자동지급 애꾸형님 2023.05.10 105
254 sega saturn region patcher file 강사내 2023.05.10 16
253 4.6 버전 스킬 목록 직접 파싱하여 뽑아낸 자료 입니다. file 여기룽 2023.04.02 167
252 0g 팩 file 막눈 2023.01.12 206
251 Lunia Online Source file paking 2021.03.15 326
250 in_game_shop [1] file BlueServer 2021.02.08 210
249 미니파이터 SPR 이미지 압축해제 소스 [1] file 애플민트 2021.01.11 265
248 포토샵 단축키 모음 아악브로임다 2020.11.29 79
247 MS-OFFICE CD를 넣으라는 메시지가 나올 때.. 아악브로임다 2020.11.29 49
246 이 컨트롤을 활성화하여 사용하려면 클릭하십시오 메시지 해결 방법 아악브로임다 2020.11.29 36
245 인터넷(IE7) 사용 중 [액세스 허용]을 묻는 대화상자가 안 나오도록.. 아악브로임다 2020.11.29 27
244 구글 번역기를 홈페이지에 달기 아악브로임다 2020.11.29 80
243 테일즈런너 소스 file 예서 2020.10.27 356
» Maven, m2eclipse설치 후 eclipse에서 WTP용 프로젝트 생성 삽질! 애니콜런 2020.09.20 103
241 HttpCore를 이용한 Basic HTTP Server 만들기 file 애니콜런 2020.09.20 100
240 [Spring Boot] 간단한 RestAPI 및 JPA 예제. file 애니콜런 2020.09.20 76
239 No$gba 3D 향상 file 애니콜런 2020.09.20 92
238 Solaris 10 MQSL 설치 과정 애니콜런 2020.09.20 68
237 어레이 오브 바이트 스캔 소스 file 레이크123 2020.08.22 61
236 자동인젝션소스 file 레이크123 2020.08.21 114
235 미르2 C# 버전 운영자 명령어 절타 2020.08.12 278
234 운영자 명령어 한글로 변환하기-2 늑대풍 2020.08.11 176
233 운영자 명령어 한글로 변환하기-1 늑대풍 2020.08.11 433
232 서버이름 수정하기 늑대풍 2020.08.11 225
231 새로운 케릭 생성시 다른 종족 못고르게 하기 [1] 늑대풍 2020.08.11 202
230 [어둠의전설] [스크립트] 철포삼 토끼토끼토끼 2020.07.14 205
229 Vcruntime140.dll 파일 file 리타이어 2020.07.05 60
228 트릭스터 마이샵 설정방법 (영문) [3] file 해우김123 2020.06.15 349
227 트릭스터 맵 코드 file 해우김123 2020.06.06 182