在将此标记为重复之前,我浏览了这些帖子,但没有任何帮助。
- '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环境变量,例如export M2_HOME=/usr/local/apache-maven/apache-maven-3.1.1.添加M2环境变量,例如export M2=$M2_HOME/bin.可选:添加MAVEN_OPTS环境变量以指定JVM属性,例如export MAVEN_OPTS="-Xms 256 m-Xmx 512 m”。此环境变量可用于为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
,然后重新启动终端,仍然没有帮助。
有人能建议如何使它在终端的所有会话中可用吗?
谢谢
9条答案
按热度按时间wpx232ag1#
如果有帮助,请尝试以下操作:
由于您的安装在您安装的终端上工作,所以您所做的所有
exports
都在current bash and its child process
上工作,但不会派生到新的terminals
。如果会话关闭,则
env
变量丢失;使用.bash_profile
,您可以使其在所有会话中可用,因为当bash
会话启动时,它“运行”其.bashrc and .bash_profile
现在按照以下步骤操作,看看是否有帮助:
1.在正在工作的终端上键入
env | grep M2_HOME
。M2_主页=/usr/本地/Apache-maven/Apache-maven-3.1.1
1.键入
env | grep JAVA_HOME
应该会得到如下结果:JAVA_HOME=/库/Java/Java虚拟机/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
。1.现在打开
.bash_profile
,如果你没有一个只是创建一个vi ~/.bash配置文件
增加以下内容:
1.保存文件并键入
source ~/.bash_profile
。此步骤将执行.bash_profile
文件中的命令,现在可以开始了。1.打开一个新的终端并键入
mvn
,这样就可以工作了。6ss1mwsb2#
上述解决方案很好,但它们需要~/.bash_profile。
/usr/local/bin
已经在**$PATH**中,可以通过执行echo $PATH
. Download maven并运行以下命令来确认-**注意:**apache maven的版本将是您要下载的版本。
rqqzpn5f3#
以下是对我起作用的方法。
首先,我检查了M2_HOME变量是否设置为
env | grep M2_HOME
。我得到了什么都没有。我知道我已经在文件夹“/usr/local/apache-maven-3.2.2”中安装了Maven,所以执行以下3个步骤为我解决了问题:
1.设置M2_HOME环境变量
M2_HOME=/usr/local/apache-maven-3.2.2
1.设置M2环境变量
M2=$M2_HOME/bin
1.更新路径
export PATH=$M2:$PATH
如上所述,如果希望自动执行该序列,可以将其保存在
.bash_profile
文件中。bwitn5fc4#
我遇到了同样的问题,我试了上面所有的方法,都没有解决我的问题。幸运的是,我这样解决了问题:
产出
jutyujz05#
可能的解决方案是Mac系统中没有安装maven。使用以下命令安装maven:
要验证它是否已成功安装,请运行以下命令:
如果返回maven版本,则表明maven已成功安装到系统中。
neekobn86#
安装maven的步骤:
1.从http://maven.apache.org/download.cgi下载maven文件
1.$tar xvf apache-maven-3.5.4-bin.tar.gz
1.将apache文件夹复制到所需位置**$cp -R apache-maven-3.5.4 /用户/本地用户**
1.转到apache目录**$cd /用户/本地/apache-maven-3.5.4/**
1.创建.bash配置文件**$vim ~/.bash配置文件**
1.写入以下两个命令:导出M2_HOME=/用户/manisha/apache-maven-3.5.4导出路径=$路径:$M2_HOME/bin7保存并退出vim**:wq!**
1.重新启动终端并键入mvn -version
n3ipq98p7#
我遵循了brain storm的指示,但仍然没有得到不同的结果--任何新的终端窗口都不会识别mvn命令。我不知道为什么,但将声明分成更小的块.bash_profile起作用了。就我所知,我基本上在做他做过的事情。下面是我的.bash_profile中看起来不同的地方:
iyfjxgzm8#
您可能有两种类型的shell示例。sh和zsh。两者都可以定义不同的路径。通过在终端中键入以下行来检查PATH环境变量
echo $PATH
要进行测试,您可以更改shell模式-
sh到zsh -〉键入zsh并在终端中按回车键(注意$更改为%)
zsh到sh -〉键入sh/bash并在终端中按回车键(注意%更改为$)
在两种shell模式下检查PATH环境。使两者相同,或根据需要附加其他模式下的路径。
在一个shell中运行而不在其他shell中运行的命令将被排序。
mwkjh3gx9#
对于你们中的一些人来说,原因可能是在maven目录的路径中使用了其他变量。更多细节请参见answer。