lanzamiento objetivo inválido: 1.7

121

He visto preguntas similares, pero aún no he encontrado la respuesta.

Usando compilación maven, obtengo:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

Aquí está el pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

Versión Javac:

javac 1.7.0_25

Versión de Java:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

¿Alguna idea de que podría ser?

Karan
fuente
14
Lo más probable es que Maven se ejecute con Java 6.
Peter Lawrey
3
Verificaría todas sus variables de entorno para ver si alguna está usando Java 6. por ejemplo, Java 7 podría estar en su camino, pero recuerdo que Maven usa JAVA_HOME o algo así.
Peter Lawrey
36
Ejecutar mvn -version. Te dirá qué Java usa.
JB Nizet
tienes razón, mvn está usando java 1.6, ¿cómo puedo cambiar esto?
Karan
1
establezca la variable JAVA_HOME en su directorio de inicio JDK7.
JB Nizet

Respuestas:

159

Debe configurar JAVA_HOME en su directorio de inicio jdk7, por ejemplo en Microsoft Windows:

  • "C: \ Archivos de programa \ Java \ jdk1.7.0_40"

o en OS X:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
Michał Nowak
fuente
71
En una Mac, donde están instalados jdk6 y jdk7, esto se puede forzar en ~ / .profile:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Hank
3
jdk8 también se puede usar para obtener el cumplimiento de jdk7
Wolfgang Fahl
3
recuerde volver a cargar ~ / .profile en el mac con:source ~/.profile
Caio Iglesias
Esto probablemente funcione para muchas cosas, pero no es suficiente para Maven y ciertamente no para el complemento compilador de Maven. Verifique la respuesta de Mike a su propia pregunta aquí: pregunta de stackoverflow 24705877 Esto resolvió el problema para mí tanto en la línea de comando Y dentro del eclipse. Además, @LinGao responde a la pregunta 2503658 de stackoverflow y el uso de la variable $ JAVACMD podría ayudar.
Litome
42

Además de establecer JAVA_HOMEla variable de entorno, debe asegurarse de estar utilizando el JDK correcto en la configuración de ejecución de Maven. Vaya a Ejecutar -> Ejecutar configuración , seleccione su configuración de Maven Build, vaya a la pestaña JRE y configure el JRE de tiempo de ejecución correcto.

Configuración de ejecución de Maven

Stanley
fuente
+1, sabía que me estaba olvidando de actualizar algo ... La opción predeterminada (para mí) al crear una configuración era el "JRE alternativo". Si alguien más se encuentra con esto, ¡asegúrese de que su complemento maven Y sus configuraciones estén actualizadas correctamente!
king14nyr
Tenía el JAVA_HOME correcto para Java 8 pero todavía me faltaba esto.
Resolviste
3

En IntelliJ IDEA esto me sucedió cuando importé un proyecto que funcionaba bien y se ejecutaba con Java 1.7. Aparentemente no le había notificado a IntelliJ que java 1.7 había sido instalado en mi máquina, y no estaba encontrando mi $JAVA_HOME.

En una Mac, esto se resuelve mediante:

Haga clic derecho en el módulo | Configuración del módulo | Proyecto

y agregando el 1.7 SDK seleccionando "Nuevo" en el SDK del Proyecto.

Luego vaya al menú principal de IntelliJ IDEA | Preferencias Maven | Corredor

y seleccione el JRE correcto. En mi caso, se actualizó correctamente Use Project SDK, que ahora era 1.7.

usuario1978019
fuente
Tenga en cuenta que al menos hay configuraciones y preferencias del proyecto para Intellij en una Mac, tuve que ir a Configuración -> Build Exec, Deploy -> Java Compiler y luego configurar la versión del bytecode del proyecto según sea necesario.
Abierto el
1

Cuando maven está trabajando fuera de Eclipse, pero al dar este error después de un cambio de JDK, vaya a su Configuración de ejecución de Maven, y en la parte inferior de la página principal, hay una opción 'Tiempo de ejecución de Maven'. El mío estaba usando el Maven incorporado, así que después de cambiarlo para usar mi Maven externo, funcionó.

djb
fuente
¿Dónde está la configuración de Maven Run, por favor?
R Claven
1
Haga clic derecho en su build.xml, vaya a 'Ejecutar como' y luego 'Ejecutar configuración' debería ser la última opción. Si se desplaza por los tipos de configuraciones de ejecución, una es 'Maven Build', y esa tiene una opción para elegir 'Maven Runtime'. Hay un botón 'configurar' al lado de eso
djb
0

Esto probablemente funcione para muchas cosas, pero no es suficiente para Maven y ciertamente no para el complemento compilador de Maven.

Verifique la respuesta de Mike a su propia pregunta aquí: pregunta de stackoverflow 24705877

Esto resolvió el problema para mí tanto en la línea de comando Y dentro del eclipse.

Además, @LinGao responde a la pregunta 2503658 de stackoverflow y el uso de la variable $ JAVACMD podría ayudar, pero no lo he probado yo mismo.

Litome
fuente