Spring-Maven

1 분 소요

Maven이란?

  • Maven은 지금까지 애플리케이션을 개발하기 위해 반복적으로 진행해왔던 작업들을 지원하기 위하여 등장한 도구입니다.
  • Maven을 사용하면 빌드(Build), 패키징, 문서화, 테스트와 테스트 리포팅, git, 의존성관리, svn등과 같은 형상관리서버와 연동(SCMs), 배포 등의 작업을 손쉽게 할 수 있습니다.
  • Maven을 이해하려면 CoC(Convention over Configuration)라는 단어를 먼저 이해해야 합니다.
  • CoC란 일종의 관습을 말하는데, 예를 들자면 프로그램의 소스파일은 어떤 위치에 있어야 하고, 소스가 컴파일된 파일들은 어떤 위치에 있어야 하고 등을 미리 정해놨다는 것입니다.
  • 이 말은 관습에 이미 익숙한 사용자는 쉽게 Maven을 사용할 수 있는데, 관습에 익숙하지 않은 사용자는 이러한 제약사항에 대해서 심한 거부감을 느낄 수 있습니다.
  • Maven을 사용한다는 것은 어쩌면 이러한 관습 즉 CoC에 대해서 알아나가는 것이라고도 말할 수 있습니다.

Maven을 사용할 경우 얻게 되는 이점은?

  • Maven을 사용할 경우, 굉장히 편리한 점들이 많습니다.
  • 많은 사람이 손꼽는 장점 중에는 편리한 의존성 라이브러리 관리가 있습니다.
  • 앞에서 JSTL을 학습할 때, 몇 가지 파일을 다운로드 하여 /WEB-INF/lib폴더에 복사하여 사용했었습니다.
  • 관련된 라이브러리가 많아질수록 이러한 방식은 상당히 불편해집니다.
  • Maven을 사용하면 설정 파일에 몇 줄 적어줌으로써 직접 다운로드 받거나 하는 것을 하지 않아도 라이브러리를 사용할 수 있습니다.
  • 프로젝트에 참여하는 개발자가 많아지게 되면, 프로젝트를 빌드하는 방법에 대하여 가이드하는 것도 쉬운 일이 아닙니다.
  • Maven을 사용하게 되면 Maven에 설정한 대로 모든 개발자가 일관된 방식으로 빌드를 수행할 수 있게 됩니다.
  • Maven은 또한 다양한 플러그인을 제공해줘서, 굉장히 많은 일들을 자동화시킬 수 있습니다.

Maven project 생성하기

  1. new project로 maven project생성
  2. 기본적으로 jdk1.5버전으로 생성되는데 이거 1.8로 바꿔줘야함. (내가 쓰고 있는게 1.8이니까)
  3. 아래의 pom.xml파일로 변경시킨다.
     <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>kr.or.connect</groupId>
       <artifactId>mavenweb</artifactId>
       <packaging>war</packaging>
       <version>0.0.1-SNAPSHOT</version>
       <name>mavenweb Maven Webapp</name>
       <url>http://maven.apache.org</url>
        
       <dependencies>
         <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>3.8.1</version>
           <scope>test</scope>
         </dependency>
       </dependencies>
       <build>
         <finalName>mavenweb</finalName>
             <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.6.1</version>
                 <configuration>
                     <source>1.8</source>
                     <target>1.8</target>
                 </configuration>
             </plugin>
         </plugins>
       </build>
     </project>
    
  4. 이렇게 한 다음에 project properties에서 Java EE Integration에서 세부적인 변경가능하게 바꿔준다.
  5. 서블릿 라이브러리 추가하기
     <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
             <version>3.1.0</version>
             <scope>provided</scope>
         </dependency>
    
  6. JSTL, EL사용하기 위한 라이브러리 추가하기
     <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>jstl</artifactId>
             <version>1.2</version>
         </dependency>
    
  7. 이클립스 navigator에서 .settings/org.eclipse.wst.common.project.facet.core.xml 파일의 내용 변경하기 → web module 버전 3.1로 바꿔주기
     <?xml version="1.0" encoding="UTF-8"?>
     <faceted-project>
       <fixed facet="wst.jsdt.web"/>
       <installed facet="jst.web" version="3.1"/>
       <installed facet="wst.jsdt.web" version="1.0"/>
       <installed facet="java" version="1.8"/>
     </faceted-project>
    

카테고리:

업데이트:

댓글남기기