【问题标题】:maven not found on Yosemite在优胜美地找不到 maven
【发布时间】:2015-03-01 21:28:39
【问题描述】:

我正在尝试在我的 mac OSX yosemite 上下载 Maven。 我尝试手动下载它并在.bash_profile中写了这个

export M2_HOME=/usr/local/apache-maven-3.2.5
export PATH=$PATH:$M2_HOME/bin

我也使用了source命令,当我尝试执行mvn命令时仍然出现这个错误:

-bash: mvn: 找不到命令

我尝试使用另一种解决方案来解决问题,即:brew install maven

但问题是brew实际上是使用死链接URL来下载maven,因此,我无法使用brew解决问题!

此外,我尝试搜索 JAVA_HOME,但即使我的 mac 上安装了 java 6,7 和 8,我也找不到它。

有人可以帮我解决这个问题吗?

我尝试执行sh mvn 并收到此错误消息:

线程“主”java.lang.NoClassDefFoundError 中的异常:org/codehaus/plexus/classworlds/launcher/Launcher 引起:java.lang.ClassNotFoundException:org.codehaus.plexus.classworlds.launcher.Launcher 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)

【问题讨论】:

  • 你试过 MAVEN_HOME 吗?
  • 我为什么要使用 MAVEN_HOME 而不是 M2_HOME?
  • 你可以试试MAVEN_HOME=$M2_HOME (backwards compatibility)
  • @Mr.Polywhirl 通过这样做,我将使用 MAVEN_HOME 而 $M2_HOME 将只是一个变量,对吧?我想使用 M2_HOME,因为将来我可能出于任何原因需要 Maven 2,而 MAVEN_HOME 仅适用于 maven 1
  • 你跑过“source .bashrc”或.bash_profile

标签: macos bash maven


【解决方案1】:

Homebrew 更新了 Maven 公式。

使用brew update,然后再次尝试brew install maven

【讨论】:

    【解决方案2】:

    export PATH="$PATH:/usr/local/apache-maven-3.2.5/bin"

    mvn 可执行文件不在/usr/local/apache-maven-3.2.5/ 中,而是在/usr/local/apache-maven-3.2.5/bin 子文件夹中。

    1. 检查/usr/local/apache-maven-3.2.5/bin/mvn 确实存在
    2. 检查(例如使用ls -l)其权限是否包含可执行(x)标志。使用chmod 0755 /usr/local/apache-maven-3.2.5/bin/mvn 他们不使用。
    3. 无论如何/usr/local/apache-maven-3.2.5/bin/mvn 是一个shell 脚本,所以你可以尝试直接用shell 运行它:sh /usr/local/apache-maven-3.2.5/bin/mvn 看看它是否确实运行。如果仍然无法运行,请使用sh -x /usr/local/apache-maven-3.2.5/bin/mvn 准确查看失败的行。

    【讨论】:

    • 1和2看起来不错,但是执行sh mvn后出现异常错误,我将在问题中发布错误。
    • 好的,所以您的设置至少有两个问题,一个与mvn shell 脚本有关,另一个与 java 类路径有关。让我们一一解决。
    • 确实存在:+ exec /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java -classpath '/usr/local/apache-maven-3.2.5/bin/boot/plexus-classworlds-*.jar' -Dclassworlds.conf=/usr/local/apache-maven-3.2.5/bin/bin/m2.conf -Dmaven.home=/usr/local/apache-maven-3.2.5/bin org.codehaus.plexus.classworlds.launcher.Launcher
    • 有问题的部分是-classpath '/usr/local/apache-maven-3.2.5/bin/boot/plexus-classworlds-*.jar' 可能没有发生扩展(在我的安装中它被扩展为-classpath /usr/local/maven3/boot/plexus-classworlds-2.5.1.jar,请注意那里的精确数字。可能是您的 M2_HOME 设置不正确。取消设置完全或至少设置为/usr/local/apache-maven-3.2.5 而不是/usr/local/apache-maven-3.2.5/bin
    • 我认为它在 bin 中,因为这是我应该在我的路径中拥有的东西?我试图从路径中删除它并重新执行 sh -x mvn,但是,即使我现在有 -classpath '/usr/local/apache-maven-3.2.5/boot/plexus-classworlds-*.jar',我仍然遇到同样的问题
    【解决方案3】:

    我遇到了同样的问题,但我通过将/bin 添加到$PATH 得到了解决,如下所示:

    export M2_HOME=/Applications/apache-maven-3.6.0/bin:$PATH
    export PATH=$PATH:$M2_HOME/bin
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      相关资源
      最近更新 更多