Soy nuevo en Maven, y también en MacOS.
He configurado maven en mi terminal, y cuando obtengo la configuración de la versión (usando mvn -v
) parece que usa JDK 1.6, mientras que tengo JDK 1.7 instalado. ¿Hay algo mal?
Los comandos que ingreso son estos:
blues:helloworld Ninja$ java -version
java version "1.7.0_05" Java(TM) SE Runtime Environment (build 1.7.0_05-b06) Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)`
blues:helloworld Ninja$ mvn -v
Apache Maven 3.1.0 (893ca28a1da9d5f51ac03827af98bb730128f9f2; 2013-06-28 10:15:32+0800) Maven home: /usr/local/Cellar/maven/3.1.0/libexec Java version: 1.6.0_51, vendor: Apple Inc. Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home Default locale: zh_CN, platform encoding: EUC_CN OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac"
Respuestas:
agregue lo siguiente a su
~/.mavenrc
:Segunda solución
echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile
fuente
export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"
para~/.mavenrc
archivo.Meterse en
y actualice el
CurrentJDK
enlace simbólico para señalarP.ej
Ahora funcionará de inmediato.
fuente
También puedes hacer,
fuente
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project {projectname}: Fatal error compiling: invalid target release: 1.7 -> [Help 1]
También puede decirle explícitamente a Maven para qué versión de Java compilar. Puedes intentar agregar el
maven-compiler-plugin
a tu pom.Si importó un proyecto maven a un IDE, entonces probablemente haya una configuración maven en su IDE para el compilador predeterminado que está utilizando su corredor maven.
fuente
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project {projectname}: Fatal error compiling: invalid target release: 1.7 -> [Help 1]
Me ayudó. Solo agrégalo a tu pom.xml.
De forma predeterminada, el complemento del compilador maven usa Java 1.5 o 1.6, debe redefinirlo en su pom.xml.
fuente
Para usuarios de Eclipse. Si tiene una Configuración de ejecución que limpia el paquete, por ejemplo.
En el panel Ejecutar configuración hay una pestaña JRE donde puede especificar en qué tiempo de ejecución debe ejecutarse. Tenga en cuenta que esta configuración anula lo que esté en pom.xml.
fuente
Llego tarde a esta pregunta, pero creo que la mejor manera de manejar las versiones de JDK en MacOS es usar el script descrito en: http://www.jayway.com/2014/01/15/how-to-switch-jdk -version-on-mac-os-x-maverick /
fuente
Por favor verifique la compatibilidad. Luché con
mvn 3.2.1
yjdk 1.6.0_37
por muchas horas. Todas las variables se establecieron pero no funcionaban. Finalmente he actualizadojdk to 1.8.0_60
ymvn 3.3.3
y que trabajaba. Variables de entorno de la siguiente manera:fuente
La solución de @MasterGaurav funciona perfectamente,
Normalmente pongo el interruptor de Java en una función zsh:
Luego puede ejecutar
java_ls
dos y obtener todos los jvm disponibles en su máquina, ejecutarjava_use 1.7
para usar la versión 1.7 para Java y Maven.fuente