MAVEN_HOME, MVN_HOME 또는 M2_HOME


84

무엇이 올바른 메이븐 환경 변수 이름이다 : MAVEN_HOME, MVN_HOME또는 M2_HOME?

MAVEN_HOMEM2_HOME 여기 에 대한 몇 가지 세부 정보를 찾았 습니다 . 그러나 나는 또한 MVN_HOME주변에서 보았다 .

답변:


62

나는 개인적으로 M2_HOME.

중요한 것은 $ PATH 환경입니다. Danix의 답변 중 일부를 하이재킹하면 다음과 같은 작업이 가능합니다.

export PATH=/Users/xxx/sdk/apache-maven-3.0.5/bin:$PATH

mvn스크립트는 계산 M2_HOME무엇의 가치가 어쨌든 당신을 위해.


3
+1. 난 설정 말하고 싶지만 M2_HOME과거에 항상 대부분 이상한 오류가 발생할 수있다 NoClassDefFoundError때문에 mvn명령이 PATH에서 발견 될 수 있지만, 다른 메이븐 버전을 통해 발견 M2_HOME. env var 설정을 중단하고 .../bin/mvn의 디렉토리를 추가하는 데에만 의존 PATH하고 Maven이 사물을 자동 감지하도록 했기 때문에 내 삶은 더 나아졌습니다 .
Baptiste Mathus

6
"개인적으로 M2_HOME을 설정하는 것이 유용하다고 생각한 적이 없습니다." 그리고 당신이 옳았습니다. 더 이상 사용되지 않습니다. stackoverflow.com/a/47712646/270371
davidxxx


22

다음은 내 Maven 설정입니다. 예를 들어 사용할 수 있습니다. Maven을 사용하기 위해 다른 것이 필요하지 않습니다.

M2_HOME은 Maven 2와 3 모두에 사용됩니다.

export M2_HOME=/Users/xxx/sdk/apache-maven-3.0.5
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xmx1048m -Xms256m -XX:MaxPermSize=312M"
export PATH=$M2:$PATH

8

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


1

나는 이것을 초콜릿 세트로 우연히 발견했습니다 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


-1

$M2_HOME예를 들어 때로는 설치하는 데 사용됩니다. Takari Extensions for Apache Maven

$M2_HOME값 을 찾는 한 가지 방법 은 다음을 검색하는 것입니다 mvn.

sudo find / -name "mvn" 2>/dev/null

그리고 아마도 다음과 같을 것입니다. /opt/maven/


링크 된 페이지 M2_HOME에 Takari에서 읽은 내용이 표시되지 않습니다 . 실행할 수있는 셸 명령의 예에서 자리 표시 자 변수를 사용하는 것입니다.
Jesse Glick

-2

다음과 같은 문제를 해결했습니다.

export M2_HOME=/usr/share/maven

2
이 코드가 문제를 해결할 수 있지만 문제를 해결하는 방법과 이유에 대한 설명포함 하여 게시물의 품질을 향상시키는 데 실제로 도움이되며 아마도 더 많은 찬성 투표를 받게됩니다. 지금 질문하는 사람뿐만 아니라 미래에 독자를 위해 질문에 답하고 있다는 것을 기억하십시오. 제발 편집 설명을 추가하고 제한 및 가정이 적용 무엇의 표시를 제공하는 답변을.
이중 경고음

-7

M2_HOME, MAVEN_HOME, M3_HOME이 모두 시장에 나와 있습니다.
이전에 M2_HOME은 모두가 표준으로 사용하는 유일한 환경 변수였습니다.
그러나 최신 릴리스로 인해 MAVEN_Home이 표준으로 제공되었지만 일부 오래된 도구는 여전히 M2_HOME 만 찾으려고
하므로 이전 도구와 새 도구를 유지하려면 M2_HOME, MAVEN_HOME이 모두 있어야합니다.
M2_HOME은 둘 다 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.