Compilación de código Java 7 a través de Maven
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 sobre mvn clean install
, consigo{[16]]}
[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
puntos 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
devuelve -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 ejecutando 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 podría definirse? Tengo fuente (d) mi .zshrc varias veces.
18 answers
Compruebe el script mvn
en su instalación maven para ver cómo está construyendo el comando. Tal vez usted o alguien más ha codificado un JAVA_HOME
y olvidado.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-26 16:50:18
Intente usar una versión más reciente del plugin de compilador maven:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
Además, especificar la codificación del archivo fuente en maven es mejor hacerlo globalmente:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
EDIT : Como esta respuesta todavía está recibiendo atención, me gustaría señalar que los últimos valores (a partir de la última edición) son 3.2 para maven compiler plugin y 1.8 para java, ya que las preguntas sobre la compilación de código java 8 a través de maven están destinadas a aparecer pronto : -)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-23 10:41:57
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 /
$ vim .bash_profile
export JAVA_HOME=$(/usr/libexec/java_home)
$ source .bash_profile
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
Tks especiales a @mkyong
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-08 21:09:53
Por favor, compruebe que pom.xml para las siguientes etiquetas
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
Debe apuntar a la versión jdk requerida
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-03 13:14:19
Yo tenía el mismo problema. Descubrí que esto se debe a que el script Maven mira el enlace CurrentJDK a continuación y encuentra un JDK 1.6. Incluso si instala el último JDK, esto no se resuelve. Mientras que solo podría establecer JAVA_HOME en su HOME HOME/.bash_profile script Elegí arreglar el enlace simbólico de la siguiente manera:
ls -l /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.4 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.4.2 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.5 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.5.0 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.6 -> CurrentJDK
lrwxr-xr-x 1 root wheel 10 30 Oct 16:18 1.6.0 -> CurrentJDK
drwxr-xr-x 9 root wheel 306 11 Nov 21:20 A
lrwxr-xr-x 1 root wheel 1 30 Oct 16:18 Current -> A
lrwxr-xr-x 1 root wheel 59 30 Oct 16:18 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
Observe que CurrentJDK apunta a 1.6.0.jdk
Para arreglarlo, ejecuté los siguientes comandos (debe verificar su versión instalada y adaptarse consecuentemente).
sudo rm /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/ /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-03 20:44:12
Tienes que comprobar la versión Maven:
mvn -version
Encontrará la versión de Java que Maven usa para la compilación. Es posible que tenga que restablecer JAVA_HOME si es necesario.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-10 15:33:59
Diagnóstico:
Puede ver qué versión de Java utiliza Maven ejecutando "mvn version version"
Solución para Debian:
El script mvn establece la variable env JAVA_HOME internamente buscando javac (que javac). Por lo tanto, si tiene varias versiones de Java instaladas simultáneamente, por ejemplo, JDK 6 y JDK 7 y usa el sistema de Alternativas de Debian para elegir entre ellas, aunque haya cambiado la alternativa para "java" a JDK 7, mvn seguirá usando JDK 6. Tienes que cambiar la alternativa para "javac", también. Por ejemplo:
# update-alternatives --set javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac
EDITAR:
En realidad, una solución aún mejor es utilizar update-java-alternatives (por ejemplo)
# update-java-alternatives -s java-1.7.0-openjdk-amd64
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).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-25 13:31:48
Podría probar un plugin más nuevo; en el sitio maven:
<version>3.0</version>
También vi lo siguiente:
<compilerVersion>1.7</compilerVersion>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-26 16:14:06
Intente cambiar la configuración del compilador Java en Propiedades en Eclipse -
Goto: Preferencias - > Java- > Compilador - > Nivel de Cumplimiento del compilador - > 1.7 Aplicar Ok
Reinicie el IDE.
Confirmar la configuración del compilador para el proyecto- Goto: Project Properties- > Java Compiler-> Uncheck(Use Compliance from execution environment 'JavaSE-1.6' on the java Build path.) y seleccione 1.7 en el menú desplegable. (Ignorar si ya es 1.7)
Reinicie el IDE.
Si todavía el problema persiste-Ejecutar individual casos de prueba usando el comando en terminal -
mvn -Dtest=<test class name> test
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-20 19:00:46
No estoy seguro de lo que el sistema operativo está en uso aquí, pero se puede eliminar una gran cantidad de versión de java futzing un debian/ubuntu con update-java-alternatives para establecer la jvm por defecto en todo el sistema.
#> update-java-alternatives -l
java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-6-sun 63 /usr/lib/jvm/java-6-sun
java-7-oracle 1073 /usr/lib/jvm/java-7-oracle
Para establecer uno nuevo, use:
#> update-java-alternatives -s java-7-oracle
No es necesario establecer JAVA_HOME para la mayoría de las aplicaciones.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-31 23:51:53
Haga clic derecho en su proyecto en eclipse y abra "Ejecutar configuraciones"..compruebe la versión de jre allí. algunas veces esto no cambiará por defecto en eclipse,incluso después de cambiar la versión en el buildpath.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-13 12:57:38
{JAVA_1_4_HOME}/bin/javacpuede probar también...
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<executable>{JAVA_HOME_1_7}/bin/javac</executable>
<fork>true</fork>
</configuration>
</plugin>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-08 12:06:52
Para una compilación específica que requiere una JVM (no predeterminada /etc/alternatives/java
), considere prefijar el comando mvn
con JAVA_HOME
de esta manera,
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/ mvn package
Aquí asumimos que el valor predeterminado es Java 8, mientras que para el proyecto específico en cuestión requerimos Java 7.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-10 09:42:44
Ok, acabo de resolver este problema por mi cuenta también. Es más importante su JAVA_HOME, si no tiene una versión más baja 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 tenerlo incluido en su RUTA.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-30 19:07:56
Es posible que esté especificando una versión incorrecta de Java. java-versión (en su terminal) para comprobar la versión de Java que está utilizando. Vaya a maven-compile-plugin para la última versión del compilador maven Su plugin puede aparecer así si está utilizando java 6 y la última versión del plugin de compilador maven es 3.1
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-30 12:27:09
Ninguna de las respuestas anteriores resolvió completamente mi caso de uso.
Necesitaba eliminar el directorio que se estaba construyendo. Limpiar. Y luego reinstalar. Parece un problema de permisos silenciosos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-10 22:29:30
Tuve este problema en IntelliJ IDEA 14 hasta que entré en el menú Archivo Structure> Estructura del proyecto, cambiando el SDK del proyecto a 1.7 y el nivel de idioma del proyecto a 7.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-05 15:59:56
Tuve este problema al trabajar con eclipse, tuve que cambiar la ruta de construcción del proyecto para que se refiera a jre 7
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-10 15:40:22