Maven 사용하기

Maven과 Gradle은 자바 빌드 도구로서
프로젝트 빌드에 필요한 라이브러리 및 각종 빌드 설정을 할 수 있다.

Maven은 2004년 출시되어 현재까지도 가장 많은 곳에서 사용되고 있어 Maven의 사용방법에 대해 알아보려고 한다.

Eclipse(STS)로 Maven 프로젝트 생성하기

  1. Maven Project로 생성한다.
    maven-1

  2. 기존 프로젝트를 우클릭하여 Maven Project로 Convert한다.
    maven-2

Maven 설정 파일 (pom.xml)

pom
pom은 Project Object Model의 약자로 Maven 프로젝트를 생성하면 root에 pom.xml이 생긴다.

이 설정 파일을 통해 라이브러리를 추가하거나 버전을 관리하는 등의 기능을 사용할 수 있다.

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mvc</groupId>
  <artifactId>todo</artifactId>
  <name>SpringTodo</name>
  <packaging>war</packaging>
  <version>1.0.0-BUILD-SNAPSHOT</version>
  <properties>
    <java-version>1.8</java-version>
    <org.springframework-version>5.3.18</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
  </properties>
  <dependencies>
    <!-- Spring -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${org.springframework-version}</version>
      <exclusions>
        <!-- Exclude Commons Logging in favor of SLF4j -->
        <exclusion>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
         </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${org.springframework-version}</version>
    </dependency>
        
    <!-- AspectJ -->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>${org.aspectj-version}</version>
    </dependency>	
...

간략하게 설명하자면 아래와 같다.

  • modelVersion : POM모델의 version 정보
  • groupId : 프로젝트를 생성하는 조직의 고유한 ID
  • artifactId : 프로젝트 빌드 시 파일의 대표 이름
  • name : 프로젝트의 이름
  • description : 프로젝트의 설명
  • packaging : 패키지의 유형 (jar, war, ear, ..)
  • version : 프로젝트의 현재 버전
  • properties : 버전 관리를 용이하게 하기 위한 프로퍼티
  • dependencies : 프로젝트 의존 관계에 있는 라이브러리를 나열

Maven을 이용하여 라이브러리 추가, 변경하기

  • 라이브러리 추가하기
    라이브러리를 추가하는 방법은 dependencies 태그 사이에 새로운 dependency를 추가하면 된다.
    MVN REPOSITORY와 같은 사이트에서 필요한 라이브러리를 찾아 해당 부분을 복사해 넣으면 된다.
...
  <dependencies>
  ...
    <!-- Spring JDBC -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.3.18</version>
    </dependency>
  ...
  </dependencies>
...
  • 라이브러리 버전 변경하기
    버전은 <dependency> 태그 안에 있는 <version> 값을 변경하면 된다.
    하지만 이렇게 버전관리하면 버전이 바뀔때마다 일일이 버전을 바꿔줘야 하므로
    위에 설명한 프로퍼티를 사용하여 버전을 관리한다.
...
  <properties>
    <org.springframework-version>5.3.18</org.springframework-version>
  </properties>
  <dependencies>
  ...
    <!-- Spring JDBC -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
  ...
  </dependencies>
...

이렇게 라이브러리를 새로 추가, 변경 시 최초에는 다운받아 로컬에 저장한다.
기본 디렉토리는 C:\Users\user\.m2\repository
해당 폴더에 가면 다운받은 라이브러리를 확인 할 수 있다.

이후 이전에 받은 버전으로 변경 시에는 추가 다운로드 없이 바로 변경되는 것을 볼 수 있다.

Continue reading


© 2021. All rights reserved.

Powered by Hydejack v9.1.5