무엇이 올바른 메이븐 환경 변수 이름이다 : MAVEN_HOME
, MVN_HOME
또는 M2_HOME
?
MAVEN_HOME
및 M2_HOME
여기 에 대한 몇 가지 세부 정보를 찾았 습니다 . 그러나 나는 또한 MVN_HOME
주변에서 보았다 .
답변:
나는 개인적으로 M2_HOME
.
중요한 것은 $ PATH 환경입니다. Danix의 답변 중 일부를 하이재킹하면 다음과 같은 작업이 가능합니다.
export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH
mvn
스크립트는 계산 M2_HOME
무엇의 가치가 어쨌든 당신을 위해.
MAVEN_HOME 받는다는 1에 사용되는 및 M2_HOME을 받는다는 2를 찾는 데 사용됩니다 . 두 개의 다른 _HOME 변수가 있다는 것은 동일한 시스템에서 둘 다 실행할 수 있음을 의미합니다. 그리고 오래된 mvn.cmd 스크립트 를 확인하면 다음과 같습니다.
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
저것 좀 봐 @REM M2_HOME - location of maven2's installed home dir
어쨌든이 패턴의 사용은 문서에 따라 maven 3.5에서 더 이상 사용되지 않습니다 .
설치된 다른 Maven 버전과 관련된 M2_HOME 사용 문제 및 단순화를 위해 M2_HOME 사용이 제거되었으며 더 이상 지원되지 않습니다. MNG-5823 , MNG-5836 , MNG-5607
이제 mvn.cmd는 다음과 같습니다.
@REM -----------------------------------------------------------------------------
@REM Apache Maven Startup Script
@REM
@REM Environment Variable Prerequisites
@REM
@REM JAVA_HOME Must point at your Java Development Kit installation.
@REM MAVEN_BATCH_ECHO (Optional) Set to 'on' to enable the echoing of the batch commands.
@REM MAVEN_BATCH_PAUSE (Optional) set to 'on' to wait for a key stroke before ending.
@REM MAVEN_OPTS (Optional) Java runtime options used when Maven is executed.
@REM MAVEN_SKIP_RC (Optional) Flag to disable loading of mavenrc files.
@REM -----------------------------------------------------------------------------
따라서 필요한 것은 JAVA_HOME을 올바르게 설정하는 것입니다. 에 따라 (2017년 12월 29일 기준) 신규 설치 가이드 , 그냥 PATH 변수에 받는다는 bin 디렉토리 경로를 추가합니다. 트릭을해야합니다.
예 : export PATH=/opt/apache-maven-3.5.2/bin:$PATH
나는 이것을 초콜릿 세트로 우연히 발견했습니다 M2_HOME
. 나는 찾고 싶었다settings.xml
.
의 현재 방법 settings.xml
은로 이동하는 것 %USERPROFILE%
입니다. 거기에 디렉토리 .m2
가 포함되어 있습니다.settings.xml
있습니다.
사용하지 마십시오 M2_HOME
. Apache Maven 3.5.0부터 지원되지 않습니다.
세부:
M2_HOME
설치된 다른 Maven 버전과 관련된 사용 문제 와 작업을 단순화하기 위해 사용M2_HOME
이 제거되었으며 더 이상 지원되지 않습니다. MNG-5823 , MNG-5836 , MNG-5607 .Windows 사용자를위한 중요 변경 사항 :의 사용법이 MNG-6001
%HOME%
로 대체되었습니다.%USERPROFILE%
출처 : https://maven.apache.org/docs/3.5.0/release-notes.html#overview-about-the-changes
$M2_HOME
예를 들어 때로는 설치하는 데 사용됩니다. Takari Extensions for Apache Maven
$M2_HOME
값 을 찾는 한 가지 방법 은 다음을 검색하는 것입니다 mvn
.
sudo find / -name "mvn" 2>/dev/null
그리고 아마도 다음과 같을 것입니다. /opt/maven/
M2_HOME
에 Takari에서 읽은 내용이 표시되지 않습니다 . 실행할 수있는 셸 명령의 예에서 자리 표시 자 변수를 사용하는 것입니다.
M2_HOME
과거에 항상 대부분 이상한 오류가 발생할 수있다NoClassDefFoundError
때문에mvn
명령이 PATH에서 발견 될 수 있지만, 다른 메이븐 버전을 통해 발견M2_HOME
. env var 설정을 중단하고.../bin/mvn
의 디렉토리를 추가하는 데에만 의존PATH
하고 Maven이 사물을 자동 감지하도록 했기 때문에 내 삶은 더 나아졌습니다 .