bash não pode encontrar o comando mvn após a instalação

0

Eu tentei instalar o Maven no CentOS 7, mas depois digitar mvn -version no terminal resulta em bash: mvn: command not found... . Como posso consertar isso para que eu possa chamar o maven do terminal do CentOS 7?

Os passos que eu dei são de este tutorial , e eles também são descritos explicitamente e inteiramente da seguinte forma:

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

Faça logout ou reinicialize o computador. Então (com nome de usuário e resultados mostrados desta vez):

[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  

Observe que eu não instalei o Ant. Além disso, a instalação do tomcat foi feita separadamente há muito tempo.

EDITAR

De acordo com o conselho de @ MarkPlotnick, tentei o seguinte, com os seguintes resultados:

[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"
    
por CodeMed 21.04.2015 / 03:29

1 resposta

2

As instruções que você citou disseram para fazer isso:

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

Isso resultará em /opt/maven/bin , /opt/maven/lib , etc.

O que você fez foi um pouco diferente:

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

Isso resultou em /opt/maven/apache-maven-3.3.1/bin , /opt/maven/apache-maven-3.3.1/lib , etc.

Quando você faz mv x /y/z , onde x é um diretório, três coisas diferentes podem acontecer:

  • se /y/z ainda não existir, toda a árvore com raiz em x será movida para /y/z .
  • se /y/z já existir e for um diretório, a árvore será movida para /y/z/x .
  • se /y/z já existir e não for um diretório, mv exibirá uma mensagem de erro e não moverá nada.
por 21.04.2015 / 04:49