どのような正しいMavenの環境変数名です: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はMaven1 に使用され、M2_HOMEはMaven2の検索に使用されます。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
とにかく、このパターンの使用は、ドキュメントに従ってmaven3.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変数にMavenのbinディレクトリのパスを追加します。それはトリックを行う必要があります。
例: export PATH=/opt/apache-maven-3.5.2/bin:$PATH
チョコレートのセットとしてこれに出くわしましたM2_HOME
。見つけたかったsettings.xml
。
の現在の方法settings.xml
はに行くこと%USERPROFILE%
です。そこには、ディレクトリ.m2
が含まれていますsettings.xml
。
絶対に使用しないでくださいM2_HOME
。Apache Maven3.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
値を見つける1つの方法は、次を検索することですmvn
。
sudo find / -name "mvn" 2>/dev/null
そして、おそらくそれは次のようになります: /opt/maven/
M2_HOME
は、タカリの何かが読んでいることを示唆するものは何もありません。実行できるシェルコマンドの例では、プレースホルダー変数を使用しているだけです。
M2_HOME
過去の設定では常に奇妙なエラーが発生したと言っても過言ではありません。これは主NoClassDefFoundError
に、mvn
コマンドがPATHにあるためですが、別のMavenバージョンはM2_HOME
。そのenvvarの設定をやめ、.../bin/mvn
のディレクトリを追加するだけでPATH
Mavenに自動検出させるようにしたので、私の生活は良くなりました。