在将此标记为重复之前,我查看了这些帖子,但没有任何帮助。 'mvn' is not recognized as an internal or external command, Getting -bash: mvn: command not found,Can'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
,然后重新启动了终端,但它仍没有帮助。
有人可以建议如何在终端的所有会话中提供它吗?
由于
答案 0 :(得分:49)
如果这些可能会有所帮助,请尝试以下操作:
由于您的安装适用于您安装的终端,因此您执行的所有exports
都可以使用current bash and its child process
。但不会产生新的terminals
。
env
个变量会丢失;使用.bash_profile
,您可以在所有会话中使用它,因为当bash
会话开始时,它会“运行”其.bashrc and .bash_profile
现在请按照以下步骤查看是否有帮助:
在正在工作的终端上输入env | grep M2_HOME
。这应该是类似
M2_HOME =的/ usr /本地/ Apache-行家/ Apache的行家-3.1.1
输入env | grep JAVA_HOME
应该这样:
JAVA_HOME = /库/爪哇/ JavaVirtualMachines / jdk1.7.0_40.jdk /内容/家庭
现在您拥有M2_HOME
和JAVA_HOME
的路径。
如果您只是ls /usr/local/apache-maven/apache-maven-3.1.1/bin
,那么您会看到mvn
二进制文件。
您现在要做的就是每次使用PATH指向此位置。由于bash
搜索了PATH
中提到的所有目录路径,因此会找到mvn
。
现在打开.bash_profile
,如果你没有,只需创建一个
vi~ / .bash_profile
添加以下内容:
#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
保存文件并输入source ~/.bash_profile
。此步骤执行.bash_profile
文件中的命令,您现在可以继续使用。
打开一个新终端并输入应该有效的mvn
。
答案 1 :(得分:8)
这对我有用。
首先,我检查了M2_HOME变量是否设置为env | grep M2_HOME
。我有没什么。
我知道我已将Maven安装在“/usr/local/apache-maven-3.2.2”文件夹中,因此执行以下3个步骤可以解决我的问题:
M2_HOME=/usr/local/apache-maven-3.2.2
M2=$M2_HOME/bin
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的步骤:
答案 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