Dependency Manager/Maven
Maven Wrapper 사용법
by BAYABA
2021. 9. 26.
- 개인 공부 목적으로 작성한 글입니다.
- 아래 출처를 참고하여 작성하였습니다.
목차
- Maven Wrapper 란?
- Maven Wrapper 구성하기(mvn, mvnw ?)
- Maven Wrapper 실행하기(mvnw 명령어)
- Maven reactor (flag)
- 결론
1. Maven Wrapper 란?
- Maven wrapper란 개발자들이 Maven을 별도의 환경에서 개발할 때 로컬 환경에 따로 설치를 원하지 않거나, Maven의 특정 버전을 빌드하기 원할 때 사용할 수 있습니다.
- 즉, Maven wrapper를 사용하면 빌드 시 버전이나 개발 환경에 의존하지 않아도 되며 독립적이게 됩니다.
- Maven wrapper만 가지고 있으면 별도로 설치하지 않아도 되며, classpath 및 별다른 Maven version을 지정할 필요도 없습니다.
2. Maven Wrapper 구성하기(mvn, mvnw ?)
- Maven wrapper를 추가하는 가장 쉬운 방법은 Maven wrapper plugin 를 사용하는 것 입니다.
- project directory로 이동한 후 해당 위치에서 mvn -N io.takari:maven:wrapper을 실행하면 .mvn directory와 mvnw, mvnw.cmd을 생성해줍니다.
- .mvn: Maven Wrapper Java 라이브러리 및 해당 속성 파일이 있는 숨겨진 폴더입니다.
- mvnw: 설치된 Maven 대신 사용되는 실행 가능한 Unix Shell Script입니다.
- mvnw.cmd: mvnw의 윈도우 배치 버전 shell script
- .mvn directory에는 wrapper directory가 생성되며 그 안에는 아래와 같은 3개의 파일이 있습니다.
- MavenWrapperDownloader.java: java class file인 이 파일을 compile 및 실행하여 Maven이 다운로드
- maven-wrapper.jar: wrapper shell scripts로 부터 maven을 실행하고, 다운로드 하는데 사용
- maven-wrapper.properties: Maven이 존재하지 않는 경우 다운로드 하기위한 URL을 명시합니다.
- 위 파일들을 통해서 Maven이 존재하지 않아도 특정 버전과 classpath를 가지고 공통된 Maven을 다운로드 및 사용할 수 있게 됩니다.
3. Maven Wrapper 실행하기(mvnw 명령어)
build
- ./mvnw clean package
- Maven /target Clean 및 Build
- ./mvnw package -pl (module-name)
run
- ./mvnw spring-boot:run
- ./mvnw spring-boot:run -pl (module-name)
install
- ./mvnw clean install
- ~/.m2/wrapper/dists
- mvnw로 설치된 maven 배포 경로
- maven-wrapper.properties에 저장 경로를 지정하지 않으면 설정되는 maven의 설치, 다운로드 폴더 경로
4. Maven reactor (flag)
- 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. 결론
- Maven Wrapper는 특정 개발환경이나 사용자에 구애받지 않고 실행/배포를 편하게 해줄 수 있는 파일/기능입니다.
출처
- [Spring] Maven Wrapper 설명 및 실행방법
- A Quick Introduction to Maven Wrapper
- A Quick Guide to Maven Wrapper
- What is the "reactor" in Maven?
- [Maven] package와 install의 차이
- Maven 명령어 및 옵션 모음