在OSX Maverick中找不到mvn命令

时间:2014-01-09 19:00:28

标签: macos bash maven terminal

在将此标记为重复之前,我查看了这些帖子,但没有任何帮助。 'mvn' is not recognized as an internal or external command, Getting -bash: mvn: command not foundCan't access mvn command from command line?

某些特定于Windows并没有帮助。其中几个在Mac OS X上给出了建议,我试过但没有帮助。

我尝试过的(这正是Maven建议的那样):

  

提取分发档案,即apache-maven-3.1.1-bin.tar.gz   到您希望安装Maven 3.1.1的目录。这些说明   假设您选择了/ usr / local / apache-maven。子目录   将从存档中创建apache-maven-3.1.1。在命令中   终端,添加M2_HOME环境变量,例如出口   M2_HOME =的/ usr /本地/ Apache-行家/ Apache的行家-3.1.1。添加M2   环境变量,例如出口M2 = $ M2_HOME / bin。可选:添加   MAVEN_OPTS环境变量,用于指定JVM属性,例如出口   MAVEN_OPTS =“ - Xms256m -Xmx512m”。可以使用此环境变量   为Maven提供额外选项。将M2环境变量添加到您的   路径,例如export PATH = $ M2:$ PATH。确保将JAVA_HOME设置为   您的JDK的位置,例如export JAVA_HOME = / usr / java / jdk1.5.0_02   并且$ JAVA_HOME / bin位于PATH环境变量中。运行mvn   --version以验证它是否已正确安装。

我在用于安装的terminal上看到它,它运行正常。我没有这个问题。但是当我尝试新的terminal时,我得到了command not found

我还在export PATH=$M2添加了.bashrc,我做了source,然后重新启动了终端,但它仍没有帮助。

有人可以建议如何在终端的所有会话中提供它吗?

由于

6 个答案:

答案 0 :(得分:49)

如果这些可能会有所帮助,请尝试以下操作:

由于您的安装适用于您安装的终端,因此您执行的所有exports都可以使用current bash and its child process。但不会产生新的terminals

如果会话结束,

env个变量会丢失;使用.bash_profile,您可以在所有会话中使用它,因为当bash会话开始时,它会“运行”其.bashrc and .bash_profile

现在请按照以下步骤查看是否有帮助:

  1. 在正在工作的终端上输入env | grep M2_HOME。这应该是类似

    的东西

    M2_HOME =的/ usr /本地/ Apache-行家/ Apache的行家-3.1.1

  2. 输入env | grep JAVA_HOME应该这样:

    JAVA_HOME = /库/爪哇/ JavaVirtualMachines / jdk1.7.0_40.jdk /内容/家庭

  3. 现在您拥有M2_HOMEJAVA_HOME的路径。

    如果您只是ls /usr/local/apache-maven/apache-maven-3.1.1/bin,那么您会看到mvn二进制文件。 您现在要做的就是每次使用PATH指向此位置。由于bash搜索了PATH中提到的所有目录路径,因此会找到mvn

    1. 现在打开.bash_profile,如果你没有,只需创建一个

      vi~ / .bash_profile

    2. 添加以下内容:

      #set JAVA_HOME
      JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
      export JAVA_HOME
      
      
      M2_HOME=/usr/local/apache-maven/apache-maven-3.1.1
      export M2_HOME
      
      PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
      export PATH
      
      1. 保存文件并输入source ~/.bash_profile。此步骤执行.bash_profile文件中的命令,您现在可以继续使用。

      2. 打开一个新终端并输入应该有效的mvn

答案 1 :(得分:8)

这对我有用。

首先,我检查了M2_HOME变量是否设置为env | grep M2_HOME。我有没什么

我知道我已将Maven安装在“/usr/local/apache-maven-3.2.2”文件夹中,因此执行以下3个步骤可以解决我的问题:

  1. 设置M2_HOME env变量
  2. M2_HOME=/usr/local/apache-maven-3.2.2

    1. 设置M2 env变量
    2. M2=$M2_HOME/bin

      1. 更新路径
      2. export PATH=$M2:$PATH

        如上所述,如果您希望自动执行该序列,可以将该序列保存在.bash_profile文件中。

答案 2 :(得分:5)

我在 macOS Sierra版本10.12.6 上做了这个。上面的解决方案很好,但它们需要〜/ .bash_profile。 /usr/local/bin已经在 $ PATH 中,可以通过echo $PATH进行确认。 http://book2s.com/java/jar/x/xmlbeans/download-xmlbeans-2.3.0.jar.html并运行以下命令 -

$ cd ~/Downloads
$ tar xvf apache-maven-3.5.3-bin.tar.gz
$ mv apache-maven-3.5.3 /usr/loca/
$ cd /usr/local/bin
$ sudo ln -s ../apache-maven-3.5.3/bin/mvn mvn
$ mvn -version
$ which mvn

注意: apache maven的版本将是您要下载的版本。

答案 3 :(得分:2)

我遇到了同样的问题,我在上面进行了所有尝试,并注意到解决了我的问题。幸运的是,我这样解决了这个问题:

echo $SHELL

输出

/bin/zsh
OR 
/bin/bash

If it showing "bash" in output. You have to add env properties in .bashrc file (.bash_profile i did not tried, you can try) or else
It is showing 'zsh' in output. You have to add env properties in .zshrc file, if not exist already you create one no issue.

答案 4 :(得分:0)

安装Maven的步骤:

  1. http://maven.apache.org/download.cgi下载maven文件
  2. $ tar xvf apache-maven-3.5.4-bin.tar.gz
  3. 将apache文件夹复制到所需位置 $ cp -R apache-maven-3.5.4 / Users / locals
  4. 转到apache目录 $ cd /Users/locals/apache-maven-3.5.4 /
  5. 创建.bash_profile $ vim〜/ .bash_profile
  6. 编写这两个命令:  导出M2_HOME = / Users / manisha / apache-maven-3.5.4  导出PATH = $ PATH:$ M2_HOME / bin 7保存并退出vim :wq!
  7. 重新启动终端,然后输入 mvn -version

答案 5 :(得分:0)

我遵循了头脑风暴的说明,但仍然没有得到不同的结果-任何新的终端窗口都无法识别mvn命令。我不知道为什么,但是将声明分成小块.bash_profile起作用。据我所知,我基本上是在做他所做的相同的事情。这是我的.bash_profile中看起来不同的地方:

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home
export PATH JAVA_HOME
J2=$JAVA_HOME/bin
export PATH J2
M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1
export PATH M2_HOME
M2=$M2_HOME/bin
export PATH M2