我尝试在 CentOS 7 上安装 Maven,但随后mvn -version
在终端中输入bash: mvn: command not found...
. 我该如何解决这个问题,以便我可以从 CentOS 7 终端调用 maven?
我采取的步骤来自本教程,并且它们也被明确且完整地描述如下:
wget http://www.eng.lsu.edu/mirrors/apache/maven/maven-3/3.3.1/binaries/apache-maven-3.3.1-bin.zip
unzip apache-maven-3.3.1-bin.zip
mkdir /opt/maven
mv apache-maven-3.3.1/ /opt/maven
ln -s /opt/maven/bin/mvn /usr/bin/mvn
gedit /etc/profile.d/maven.sh
Add the following contents to /etc/profile.d/maven.sh :
#!/bin/bash
MAVEN_HOME=/opt/maven
PATH=$MAVEN_HOME/bin:$PATH
export PATH MAVEN_HOME
export CLASSPATH=.
Save and close the file. Then:
chmod +x /etc/profile.d/maven.sh
source /etc/profile.d/maven.sh
注销或重新启动计算机。然后(这次显示用户名和结果):
[root@localhost ~]# mvn -version
bash: mvn: command not found...
[root@localhost ~]# mvn --version
bash: mvn: command not found...
[root@localhost ~]# echo $MAVEN_HOME
/opt/maven
请注意,我没有安装 Ant。还有,tomcat的安装很早之前就单独完成了。
编辑
根据 @MarkPlotnick 的建议,我尝试了以下方法,得到了以下结果:
[root@localhost ~]# mv /opt/maven /opt/maven.bak
[root@localhost ~]# mv /opt/maven.bak/apache-maven-3.3.1 /opt/maven
[root@localhost ~]# mvn -version
Apache Maven 3.3.1 (lotsnumbersandletters; 2015-03-13T13:10:27-07:00)
Maven home: /opt/maven
Java version: 1.7.0_71, vendor: Oracle Corporation
Java home: /usr/java/jdk1.7.0_71/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "versionnumber", arch: "amd64", family: "unix"
答案1
您引用的说明说要执行此操作:
wget http://www.eng.lsu.edu/mirrors/apache/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.zip
unzip apache-maven-3.2.3-bin.zip
mv apache-maven-3.2.3/ /opt/maven
这将导致/opt/maven/bin
、/opt/maven/lib
等。
你所做的略有不同:
wget http://www.eng.lsu.edu/mirrors/apache/maven/maven-3/3.3.1/binaries/apache-maven-3.3.1-bin.zip
unzip apache-maven-3.3.1-bin.zip
mkdir /opt/maven
mv apache-maven-3.3.1/ /opt/maven
这导致了/opt/maven/apache-maven-3.3.1/bin
、/opt/maven/apache-maven-3.3.1/lib
等。
当您这样做时mv x /y/z
,其中 x 是一个目录,可能会发生三种不同的情况:
- 如果
/y/z
不存在,则以 为根的整棵树x
将移动到/y/z
。 - 如果
/y/z
已经存在并且是一个目录,则树将移动到/y/z/x
. - 如果
/y/z
已经存在并且不是目录,mv
将输出错误消息并且不会移动任何内容。