나는 봄 부팅 응용 프로그램을 만들 때 나는 볼 수 있었다 mvnw
및 mvnw.cmd
프로젝트의 루트에 파일을 저장합니다. 이 두 파일의 목적은 무엇입니까?
나는 봄 부팅 응용 프로그램을 만들 때 나는 볼 수 있었다 mvnw
및 mvnw.cmd
프로젝트의 루트에 파일을 저장합니다. 이 두 파일의 목적은 무엇입니까?
답변:
이 파일은 Maven 래퍼 에서 가져온 것 입니다. Gradle 래퍼 와 비슷하게 작동합니다 .
이를 통해 경로에 Maven을 설치하고 표시하지 않고도 Maven 프로젝트를 실행할 수 있습니다. 찾지 못한 경우 올바른 Maven 버전을 다운로드합니다 (기본적으로 사용자 홈 디렉토리에 알고있는 한).
mvnw
파일은 리눅스 (bash는) 용이고는 mvnw.cmd
Windows 환경을위한 것입니다.
필요한 모든 Maven Wrapper 파일을 만들거나 업데이트하려면 다음 명령을 실행하십시오.
mvn -N io.takari:maven:wrapper
다른 버전의 maven을 사용하려면 다음과 같이 버전을 지정할 수 있습니다.
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
두 명령은 (는) 메이븐 필요 PATH
(메이븐에 경로를 추가 bin
로 Path
당신은 이미 당신이 사용할 수있는 프로젝트에 mvnw이있는 경우 시스템 변수에) ./mvnw
대신 mvn
명령에.
Command mvnw
는 ~/.m2/wrapper
처음 사용시 기본적으로 다운로드되는 Maven을 사용합니다.
Maven이있는 URL은 각 프로젝트에서 .mvn/wrapper/maven-wrapper.properties
다음 위치에 지정됩니다 .
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
Maven 버전을 업데이트하거나 변경하려면 다음을 호출하십시오 ( --non-recursive
멀티 모듈 프로젝트를 기억하십시오 ).
./mvnw io.takari:maven:wrapper -Dmaven=3.3.9
또는 .mvn/wrapper/maven-wrapper.properties
수동으로 수정하십시오 .
Maven을 사용하여 처음부터 래퍼를 생성하려면 (이미 PATH
실행 되어 있어야합니다 .
mvn io.takari:maven:wrapper -Dmaven=3.3.9
메이븐 래퍼는 메이븐의 (또는 모두에서 메이븐을 설치하지 않은 사용자를위한) 특정 버전을 필요로 프로젝트를위한 탁월한 선택입니다. 운영 체제에 여러 버전을 설치하는 대신 프로젝트 별 래퍼 스크립트를 사용할 수 있습니다.
mvnw : 완전히 설치된 Maven 대신 사용되는 실행 가능한 Unix 쉘 스크립트입니다.
mvnw.cmd : Windows 환경을위한 것입니다
사용 사례
랩퍼는 다음과 같은 다른 운영 체제에서 작동해야합니다.
그런 다음 유닉스 시스템에서 다음과 같은 목표를 실행할 수 있습니다.
./mvnw clean install
그리고 배치에 대한 다음 명령 :
./mvnw.cmd clean install
래퍼 속성에 지정된 Maven이 없으면 $USER_HOME/.m2/wrapper/dists
시스템 의 폴더 에 다운로드되어 설치됩니다 .
메이븐 래퍼 플러그인
간단한 Spring Boot 프로젝트에서 자동 설치를위한 Maven Wrapper 플러그인 .
먼저 프로젝트의 기본 폴더로 이동하여 다음 명령을 실행해야합니다.
mvn -N io.takari:maven:wrapper
Maven의 버전을 지정할 수도 있습니다.
mvn -N io.takari:maven:wrapper -Dmaven=3.5.2
-N 옵션은 – 비 재귀를 의미하므로 랩퍼는 서브 모듈이 아닌 현재 디렉토리의 기본 프로젝트에만 적용됩니다.
지금까지 가장 좋은 옵션은 maven 컨테이너를 빌더 도구로 사용하는 것입니다. 이와 mvn.sh
같은 스크립트로 충분합니다.
#!/bin/bash
docker run --rm -ti \
-v $(pwd):/opt/app \
-w /opt/app \
-e TERM=xterm \
-v $HOME/.m2:/root/.m2 \
maven mvn "$@"
mvn
사용할 수는 있지만 maven 작업에 명령을 사용 하고있었습니다./mvnw
.