본문 바로가기
Dependency Manager/Maven

Maven Wrapper 사용법

by BAYABA 2021. 9. 26.
  1. 개인 공부 목적으로 작성한 글입니다.
  2. 아래 출처를 참고하여 작성하였습니다.

목차

  1. Maven Wrapper 란?
  2. Maven Wrapper 구성하기(mvn, mvnw ?)
  3. Maven Wrapper 실행하기(mvnw 명령어)
  4. Maven reactor (flag)
  5. 결론

1. Maven Wrapper 란?

  1. Maven wrapper란 개발자들이 Maven을 별도의 환경에서 개발할 때 로컬 환경에 따로 설치를 원하지 않거나, Maven의 특정 버전을 빌드하기 원할 때 사용할 수 있습니다.
  2. 즉, Maven wrapper를 사용하면 빌드 시 버전이나 개발 환경에 의존하지 않아도 되며 독립적이게 됩니다.
  3. Maven wrapper만 가지고 있으면 별도로 설치하지 않아도 되며, classpath 및 별다른 Maven version을 지정할 필요도 없습니다.

2. Maven Wrapper 구성하기(mvn, mvnw ?)

  1. Maven wrapper를 추가하는 가장 쉬운 방법은 Maven wrapper plugin 를 사용하는 것 입니다.
  2. project directory로 이동한 후 해당 위치에서 mvn -N io.takari:maven:wrapper을 실행하면 .mvn directorymvnw, mvnw.cmd을 생성해줍니다.
  • .mvn: Maven Wrapper Java 라이브러리 및 해당 속성 파일이 있는 숨겨진 폴더입니다.
  • mvnw: 설치된 Maven 대신 사용되는 실행 가능한 Unix Shell Script입니다.
  • mvnw.cmd: mvnw의 윈도우 배치 버전 shell script
  1. .mvn directory에는 wrapper directory가 생성되며 그 안에는 아래와 같은 3개의 파일이 있습니다.
  • MavenWrapperDownloader.java: java class file인 이 파일을 compile 및 실행하여 Maven이 다운로드
  • maven-wrapper.jar: wrapper shell scripts로 부터 maven을 실행하고, 다운로드 하는데 사용
  • maven-wrapper.properties: Maven이 존재하지 않는 경우 다운로드 하기위한 URL을 명시합니다.
  1. 위 파일들을 통해서 Maven이 존재하지 않아도 특정 버전과 classpath를 가지고 공통된 Maven을 다운로드 및 사용할 수 있게 됩니다.

3. Maven Wrapper 실행하기(mvnw 명령어)

build

  1. ./mvnw clean package
  • Maven /target Clean 및 Build
  1. ./mvnw package -pl (module-name)
  • 멀티 모듈 구조에서 위와 같이 사용합니다.

run

  1. ./mvnw spring-boot:run
  • Maven으로 Spring boot 실행
  1. ./mvnw spring-boot:run -pl (module-name)

install

  1. ./mvnw clean install

  1. ~/.m2/wrapper/dists
  • mvnw로 설치된 maven 배포 경로
  • maven-wrapper.properties에 저장 경로를 지정하지 않으면 설정되는 maven의 설치, 다운로드 폴더 경로

4. Maven reactor (flag)

  1. Reactor는 프로젝트에 다중 모듈이 있을 때 사용합니다.
-rf, --resume-from
    Resume reactor from specified project
-pl, --projects
    Build specified reactor projects instead of all projects
-am, --also-make
    If project list is specified, also build projects required by the list
-amd, --also-make-dependents
    If project list is specified, also build projects that depend on projects on the list

4. 결론

  1. Maven Wrapper는 특정 개발환경이나 사용자에 구애받지 않고 실행/배포를 편하게 해줄 수 있는 파일/기능입니다.

출처

  1. [Spring] Maven Wrapper 설명 및 실행방법
  2. A Quick Introduction to Maven Wrapper
  3. A Quick Guide to Maven Wrapper
  4. What is the "reactor" in Maven?
  5. [Maven] package와 install의 차이
  6. Maven 명령어 및 옵션 모음

'Dependency Manager > Maven' 카테고리의 다른 글

maven-surefire-plugin:2.18.1:test failed  (0) 2021.10.11
spring-boot-maven-plugin  (0) 2021.09.28
Maven 멀티 모듈 구성방법  (0) 2021.09.27
[Tag] dependencyManagement  (0) 2021.09.16