Algumas idéias ... Primeiro, apenas para reformatar a legibilidade, este é o seu PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Estas são suas variáveis de env:
export JAVA_HOME=/usr/local/jdk1.6.25/ export M2_HOME=/usr/local/apache-maven/apache-maven-3.0.3 export M2=$M2_HOME/bin export PATH=$M2:$PATH
Observe que "java" (o programa) está em $JAVA_HOME/bin
, não em $JAVA_HOME
. Isso causará um pouco de confusão quando um 'java' diferente for encontrado no PATH do shell. Por exemplo ...
$ type java java is /usr/bin/java
Apenas modifique seu PATH:
$ export PATH=$JAVA_HOME/bin:$PATH $ type java ... should be $JAVA_HOME/bin/java ...
Mas não acho que seja esse o problema. A partir do iniciador do script de shell do mvn,
if [ -z "$JAVA_HOME" ] ; then echo "Warning: JAVA_HOME environment variable is not set." fi
Isto implicaria que o var realmente não está definido - não apenas configurado para um valor errado. Talvez esta seja a dica-chave:
[meu java_home ...] mesmo que exista no meu arquivo de ambiente?
Talvez você tenha adicionado / modificado JAVA_HOME
a .bashrc
ou .profile
e, no mesmo shell, tentou executar mvn -v
?? Nesse caso, esses valores não serão coletados até que você crie o arquivo (por exemplo, . ~/.bashrc
) ou crie um novo shell de login ( bash -l
) para que esses env var sejam definidos (ou redefinidos).
(Também ... é apenas uma questão de opinião, mas no seu PATH
, deixo o padrão /usr/bin
(e /usr/sbin
e /bin
) na frente de qualquer /usr/local/bin
ou /opt/bin
(etc), apenas para evitar que programas 'locais' de rouge tenham prioridade sobre os programas padrão ... usar algo como alternatives
seria preferível para substituir as versões padrão dos aplicativos padrão.)