tutorial mvn java maven

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:

  1. Asegúrese de que JAVA_HOME esté configurado apuntando correctamente a JDK;
  2. 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.