mvn - No puede lograr que Maven reconozca Java 1.8
maven windows (8)
Está utilizando una versión de acceso anticipado de 1.8. Ahora que ha sido lanzado, debes instalar la versión lanzada.
Compruebe la instalación de maven para ver si tiene una configuración asociada que especifique un JDK en particular. Ocasionalmente hay scripts de envoltura que reinician JAVA_HOME antes del lanzamiento de Maven, o el ejecutable de Maven se inicia en un contenedor que hace referencia a un archivo de configuración que podría vincularlo a una JVM particular.
Parece que no puedo hacer que Maven use Java 1.8. Usando 1.8 como el objetivo aparece el siguiente error:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
(default-compile) on project csaro: Fatal error compiling: invalid target
release: 1.8 -> [Help 1]
La causa del error es bastante obvia: Maven no está utilizando la versión correcta de Java:
$ mvn -version
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T07:51:42-06:00)
Maven home: /usr/local/Cellar/maven/3.2.2/libexec
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.2", arch: "x86_64", family: "mac"
Pero la versión instalada de Java debería ser 1.8:
$ java -version
java version "1.8.0_20-ea"
Java(TM) SE Runtime Environment (build 1.8.0_20-ea-b22)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b21, mixed mode)
Y JAVA_HOME está configurado:
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
También probé el comando aquí (que crea mavenrc
). Intenté reiniciar la computadora varias veces y verifiqué que el env var está configurado correctamente (está configurado en .bash_profile
).
Maven fue instalado con Homebrew.
Java 1.8 funciona bien en Eclipse (que usa m2e). No puedo hacer que Maven trabaje en la línea de comando.
La solución que funcionó para mí:
En Eclipse, tuve una configuración de ejecución incorrecta en mi compilación Maven. Ir
Configuraciones de ejecución -> JRE [Tab]
y establecer el tiempo de ejecución a Java 8.
Me encontré con el mismo problema en mi sistema CentOS 6.5.
java -version
devolvió una versión Java 8, pero javac -version
devolvió una versión Java 7.
Tuve que ejecutar los siguientes comandos para obtener todo tipo de enlaces simbólicos relacionados con Java apuntando a mi instalación JDK 8:
sudo alternatives --config java
sudo alternatives --config javac
sudo alternatives --config jre_openjdk
sudo alternatives --config java_sdk_openjdk
Para mí, el problema fue que cuando instalé desde jdk-8u25-macosx-x64.dmg
la instalación no actualizó el enlace /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
al nuevo 1.8 JDK. Puede que este no haya sido el problema de la pregunta original, pero fue la solución para mí cuando encontré el mismo mensaje de error.
No sé por qué el instalador no lo vincula y para hacer las cosas más confusas, la ruta es diferente dependiendo de si la instaló desde Oracle o Apple. Consulte Mac OS X 10.6.7 Ruta de Java Corriente JDK confuso
Hice lo siguiente para arreglar mi entorno
cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/<installed_jdk_version>.jdk/Contents CurrentJDK
Resultó que tenía un archivo ~/.mavenrc
olvidado que había establecido el valor de JAVA_HOME
.
Para lectores futuros, verifique las siguientes ubicaciones para lugares que pueden anular JAVA_HOME
(en orden de precedencia ascendente):
-
~/.bash_profile
-
~/.bash_login
-
~/.bashrc
-
~/.profile
-
/etc/mavenrc
-
~/.mavenrc
Si está utilizando Maven dentro de un servidor de integración continua, asegúrese de verificar su configuración, ya que puede anular el JDK utilizado por Maven. Para Jenkins, tuve que agregar el nuevo 1.8 JDK en la configuración general y configurar mi proyecto para usarlo.
Su JAVA_HOME
está siendo reemplazado desde otro lugar. Intenta hacer eco en mvn
justo antes de la invocación de Java.
Tuve el mismo problema, necesité 2 pasos para hacer la corrección:
- Asegúrese de que
JAVA_HOME
esté configurado apuntando correctamente a JDK; - JDK y JRE en eclipse deben señalar la misma versión.
Para mí, 1 paso fue correcto, el 2 ° paso tuvo problema. En eclipse »Propiedades del proyecto» Ruta de compilación »JRE instalado» apuntar a JDK.