[Maven] maven wrapper란?
[Maven] maven wrapper란?
- Apache Maven은 자바 프로젝트에서는 없어서는 안 될 의존성 관리 도구
- 이를 좀 더 쉽게 최신 버전을 유지하기 위해 Maven wrapper가 나옴
- Maven wrapper가 설정된 프로젝트는 Maven 설치 없이도 빌드 가능
Maven Wrapper
- Apache Maven을 프로젝트에서 요구하는 버전으로 유지하기 위해 사용하는 도구
- 만약 로컬 시스템에 mvn이 설치되어 있지 않거나 혹은, mvn 버전이 2.x대의 낮은 버전이라면, maven을 설치하는 것도 프로젝트를 설정하는데 번거로운 작업일 것
실행하기
- 일반적으로 Maven은 다음과 같은 명령으로 실행 함
mvn clean package
- 하지만, mvnw가 설정된 프로젝트의 경우 다음과 같은 명령어로 실행한다.
- 만약 mvnw에 실행 권한이 없다면 실행 권한을 추가해야 한다
- chmod +x mvnw
./mvnw clean package
- 또는 윈도우에서는 다음과 같은 명령어로 실행한다.
mvnw.cmd clean install
- 사용되는 maven의 버전은 .mvn/wrapper/maven-wrapper.proeprties 파일에 distributionUrl 속성에 정의된다.
- 프로젝트 최상단 디렉토리에 mvnw, mvnw.cmd와 .mvn 디렉토리가 있다면, mvnw가 설정되어 있는 프로젝트이다.
프로젝트에 mvnw 초기 구성
- 그렇다면, mvnew가 구성되지 않은 프로젝트의 경우에는 어떻게 구상해야 할까?
- 우선 mvn 명령어가 동작하게 maven 환경을 구성해야 함
- maven 구성 방법은 Apache Maven 사이트에서 직접 내려 받는 방법 등 여러가지가 있다
- maven환경이 설정되었으면, 다음의 명령어를 실행 할 수 있다.
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
- 만약 -Dmaven 버전을 명시하지 않으면, 실행 시점에 maven 최신 버전이 mvnw 설정되며, 이후 maven이 설치되어 있지 않은 개발자는 mvnw만으로도 maven이 설치되면서 빌드를 할 수 있다.
- 이렇게 실행하면 위에 설명한 mvnw, mvn.cmd 그리고 .mvn디렉토리가 생성된다.
- mvnw로 설치된 maven 배포판은 어디에 설치되어 있을까?
- (사용자홈)/.m2/wrapper/dists 디렉토리에 설치된다
combine@localhost:~$ ls ~/.m2/wrapper/dists/
apache-maven-3.3.9-bin
결론
- 복잡해지는 빌드 환경을 Maven Wrapper를 이용해 해결할 수 있다
- Maven Wrapper는 Spring, Presto 등 유명 프로젝트에서도 활발히 사용 중이다.
출처
댓글
댓글 쓰기