- 這只是我解決問題的過程,不是官方教程,不同的機器有不同的情況,希望能夠幫到你
首先下載的是Apache官網的Maven3.5.4的版本
-
安裝在image.png
- 然后就是配置Maven的環(huán)境,我是在.bash_profile里面配置的
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH - 接下來就順理成章的測試了 mvn -v. 就提示我
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE - 矛頭很自然的對向了JAVA_HOME. 百度跟GOOGLE了很多種方法基本上都在說重新配置環(huán)境變量, 加上
export JAVA_HOME = $(/usr/libexec/java_home)
這是apple官方建議的JAVA_HOME。 然而問題并沒有被解決,然后在網上找到了調試運行mvn的方法
sh -x mvn
出現了一些調試畫面
? ~ sh -x mvn
+ '[' -z '' ']'
+ '[' -f /etc/mavenrc ']'
+ . /etc/mavenrc
+++ /usr/libexec/java_home
++ export ``JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
+ '[' -f /Users/wongzhe/.mavenrc ']'
- cygwin=false
- mingw=false
- case "
uname" in
++ uname - PRG=mvn
- '[' -h mvn ']'
++ pwd - saveddir=/Users/wongzhe
++ dirname mvn - MAVEN_HOME=./..
++ cd ./..
++ pwd - MAVEN_HOME=/Users
- cd /Users/wongzhe
- false
- false
- '[' -z /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home ']'
JAVACMD=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin/java
- 提示說JAVACMD的問題,同樣在bash_profile中添加了JAVA_CMD
- 還是沒有用,從上面的腳本運行調試中可以看出Maven是先從/etc/mavenrc中讀取javahome的,所以我又嘗試著把
JAVA_HOME=$(/usr/libexec/java_home)加到mavenrc中。結果還是沒有變化,這時候已經想死了。
最后還有個提示是M2_HOME 為false。我就在bash_profile中吧MAVEN_HOME改成了M2_HOME。source了一下。mvn - v 終于成功了
image.png
最后有個附加問題。就是每次重啟terminal的時候都需要source一下bash_profile
發(fā)現zsh加載的是 ~/.zshrc文件,而 ‘.zshrc’ 文件中并沒有定義任務環(huán)境變量。
解決辦法是
在~/.zshrc文件最后,增加一行:
source ~/.bash_profile
參考鏈接:
https://stackoverflow.com/questions/45230150/java-home-is-not-working-in-maven
https://blog.csdn.net/science_Lee/article/details/79214127
https://stackoverflow.com/questions/27319495/error-java-home-is-not-defined-correctly-executing-maven/44564303#44564303

