Mis listas de archivos pom
<project>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
...
Sin embargo mvn clean install
, me sale
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
javac: invalid target release: 1.7
Usage: javac <options> <source files>
/usr/bin/java -version
es ( which java
señala aquí)
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
javac
también apunta a la versión correcta de Java
/usr/bin/javac -> /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/javac
En esta máquina, estoy usando zsh
( echo $0
devoluciones -zsh
)
En mi .zshrc
, he definido:
33 # HOME
34 JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
35 SCALA_HOME=/Library/Scala/current
36 FORGE_HOME=~/tools/forge/
37
38 # PATH
39 PATH="/Library/Frameworks/Python.framework/Versions/3.2/bin:${PATH}"
40 PATH=${PATH}:${JAVA_HOME}/bin
41 PATH=${PATH}:/bin/
42 PATH=${PATH}:/sbin/
43 PATH=${PATH}:/usr/bin/
44 PATH=${PATH}:/usr/sbin/
45 PATH=${PATH}:/opt/local/bin/
46 PATH=${PATH}:/opt/local/sbin/
47 PATH=${PATH}:/usr/local/git/bin
48 PATH=${PATH}:/usr/local/git/sbin
49 PATH=${PATH}:/Applications/Xcode.app/Contents/Developer/usr/bin
50 PATH=${PATH}:${SCALA_HOME}/bin
51 PATH=${PATH}:${FORGE_HOME}/bin
52
53 export PATH
Cuando estoy corriendo mvn clean install --debug
veo que, de hecho, uso Java 6
1 Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
2 Maven home: /usr/share/maven
3 Java version: 1.6.0_35, vendor: Apple Inc.
4 Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
¿Dónde se podría definir? Tengo fuente (d) mi .zshrc varias veces.
/usr/bin
primero en su lista de directorios. Intentejavac -version
sin especificar un directorio.javac 1.7.0_10
echo $JAVA_HOME
te dice--debug
, debería decirle la línea de comando exacta que está utilizando para ejecutarjavac
(junto con toneladas de otras cosas). ¿Qué dice?Respuestas:
Verifique el
mvn
script en su instalación de Maven para ver cómo está construyendo el comando. Quizás usted u otra persona hayan codificado un códigoJAVA_HOME
allí y se hayan olvidado.fuente
mvn
script no era compatible con mi instalación OSX de JDK 7 de Oracle, y no hice nada sofisticado para configurarlo (el script busca una carpetaLibrary/Java/JavaVirtualMachines/CurrentJDK
que no existía para mí (lo que sí existe es enjdk1.7.0_25.jdk
lugar deCurrentJDK
). una solución elegante pero acabo de codificar la exportación y ahora funciona (PD: maven en OSX está en/usr/share/maven/bin/mvn
)/usr/local/bin/mvn
intente usar una versión más nueva del complemento compilador maven:
Además, la especificación de la codificación del archivo fuente en Maven se realiza mejor globalmente:
EDITAR : Como esta respuesta sigue recibiendo atención, me gustaría señalar que los últimos valores (a partir de la última edición) son 3.2 para el complemento del compilador Maven y 1.8 para Java, ya que las preguntas sobre la compilación del código Java 8 a través de Maven están vinculadas a aparece pronto :-)
fuente
Tuve el mismo problema y para resolver esto sigo este artículo del blog: http://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/
tks especiales para tks @mkyong
EDITAR: ahora estoy usando: jEnv + sdkman
fuente
Por favor revisa tu pom.xml para las siguientes etiquetas
debe apuntar la versión jdk requerida
fuente
Tienes que verificar la versión de Maven:
Encontrará la versión de Java que Maven usa para la compilación. Es posible que deba restablecer JAVA_HOME si es necesario.
fuente
Yo tuve el mismo problema. Descubrí que esto se debe a que el script Maven mira el enlace CurrentJDK a continuación y encuentra un 1.6 JDK. Incluso si instala el último JDK, esto no se resuelve. Si bien podría configurar JAVA_HOME en su script $ HOME / .bash_profile, elegí arreglar el enlace simbólico de la siguiente manera:
Tenga en cuenta que CurrentJDK apunta a 1.6.0.jdk
Para solucionarlo, ejecuté los siguientes comandos (debe verificar su versión instalada y adaptarla en consecuencia).
fuente
Diagnósticos:
Puede ver qué versión de Java utiliza Maven ejecutando "mvn --version"
Solución para Debian:
El script mvn establece la variable env JAVA_HOME internamente al buscar javac (que javac). Por lo tanto, si tiene varias versiones de Java instaladas simultáneamente, por ejemplo, JDK 6 y JDK 7 y utiliza el sistema de alternativas de Debian para elegir entre ellas, aunque haya cambiado la alternativa de "Java" a JDK 7, mvn seguirá utilizando JDK 6. Usted también tengo que cambiar la alternativa para "javac". P.ej:
EDITAR:
En realidad, una solución aún mejor es usar update-java-alternative (eg)
como se detalla en https://wiki.debian.org/JavaPackage , porque esto cambiará todas las alternativas a varias herramientas Java (hay una docena más o menos).
fuente
¿Podría probar un complemento más nuevo? en el sitio maven:
También vi lo siguiente:
fuente
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project divs: Fatal error compiling: invalid target release: 1.7 -
Intente cambiar la configuración del compilador Java en Propiedades en Eclipse-
Ir a: Preferencias-> Java-> Compilador-> Nivel de cumplimiento del compilador-> 1.7 Aplicar Ok
Reiniciar IDE.
Confirme la configuración del compilador para el proyecto: vaya a: Propiedades del proyecto-> Compilador de Java-> Desmarque (Use Cumplimiento del entorno de ejecución 'JavaSE-1.6' en la ruta de compilación de Java) y seleccione 1.7 en el menú desplegable. (Ignorar si ya es 1.7)
Reiniciar IDE.
Si el problema persiste, ejecute casos de prueba individuales usando el comando en la terminal.
fuente
No estoy seguro de qué sistema operativo está en uso aquí, pero puede eliminar una gran cantidad de versiones de Java en un debian / ubuntu con update-java-alternative para configurar el sistema jvm predeterminado en todo el sistema.
Para configurar uno nuevo, use:
No es necesario configurar JAVA_HOME para la mayoría de las aplicaciones.
fuente
haga clic derecho sobre su proyecto en eclipse y abra "Ejecutar configuraciones" ... verifique la versión jre allí. algunas veces esto no cambiará por defecto en eclipse, incluso después de cambiar la versión en el buildpath.
fuente
Para una compilación específica que requiere una
/etc/alternatives/java
JVM (no predeterminada ), considere prefijar elmvn
comandoJAVA_HOME
así,Aquí asumimos que el valor predeterminado es Java 8, mientras que para el proyecto específico en cuestión requerimos Java 7.
fuente
{JAVA_1_4_HOME} / bin / javacy puedes probar también ...
fuente
Ok, también resolví este problema por mi cuenta. Es más importante su JAVA_HOME, si no tiene una versión inferior o ninguna en comparación con las propiedades de origen / destino del complemento Maven, obtendrá este error.
Asegúrese de tener una buena versión en su JAVA_HOME y tenerla incluida en su RUTA.
fuente
Es posible que esté especificando una versión incorrecta de Java. Java -version (en su terminal) para verificar la versión de Java que está utilizando. Vaya a maven-compile-plugin para obtener la última versión del compilador de maven Su complemento puede aparecer así si está utilizando java 6 y la última versión del complemento del compilador de maven es 3.1
fuente
Ninguna de las respuestas anteriores resolvió por completo mi caso de uso.
Necesario para eliminar el directorio que se estaba creando. Limpiar. Y luego reinstalar. Parece un problema de permisos silenciosos.
fuente
Tuve este problema en IntelliJ IDEA 14 hasta que entré en el menú Archivo -> Estructura del proyecto, cambiando el SDK del proyecto a 1.7 y el nivel de idioma del proyecto a 7.
fuente
Tuve este problema al trabajar con eclipse, tuve que cambiar la ruta de compilación del proyecto para que se refiera a jre 7
fuente