纪一次在MAC OS X上配置Maven环境的惨痛经历

  • 这只是我解决问题的过程,不是官方教程,不同的机器有不同的情况,希望能够帮到你

首先下载的是Apache官网的Maven3.5.4的版本

  • 安装在
    image.png
  • 然后就是配置Maven的环境,我是在.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了很多种方法基本上都在说重新配置环境变量, 加上
    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

发现zsh加载的是 ~/.zshrc文件,而 ‘.zshrc’ 文件中并没有定义任务环境变量。

解决办法是
在~/.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

你可能感兴趣的:(纪一次在MAC OS X上配置Maven环境的惨痛经历)