Importé un proyecto de Maven y usé Java 1.5 aunque tengo 1.6 configurado como mi valor predeterminado de Eclipse Preferences->Java->Installed JREs
.
Cuando cambié el proyecto Maven para usar el 1.6 JRE, todavía tenía los errores de compilación de cuando el proyecto estaba usando Java 1.5 (describí estos errores de compilación anteriormente: Tengo errores de compilación con m2eclipse pero no con maven2 en la línea de comando - ¿mi m2eclipse está mal configurado? )
Voy a eliminar el proyecto e intentarlo de nuevo, pero quiero asegurarme de que esta vez use Java 1.6 desde el principio para ver si esto elimina los problemas de compilación.
¿Cómo me aseguro de que el proyecto usa Java 1.6 cuando lo importo?
Respuestas:
El complemento m2eclipse no utiliza los valores predeterminados de Eclipse, el complemento m2eclipse deriva la configuración del POM. Entonces, si desea que un proyecto de Maven se configure para usar la configuración de Java 1.6 cuando se importe en Eclipse, configúrelo
maven-compiler-plugin
adecuadamente, como ya sugerí:Si su proyecto ya está importado, actualice la configuración del proyecto ( haga clic con el botón derecho en el proyecto y luego en Maven V Actualizar configuración del proyecto ).
fuente
Agregué esto a mi pom.xml debajo de la descripción del proyecto y funcionó:
fuente
<properties> <maven.compiler.source>9</maven.compiler.source> <maven.compiler.target>9</maven.compiler.target> </properties>
Quería agregar algo a la respuesta ya proporcionada. maven-compiler-plugin por defecto compilará su proyecto usando Java 1.5, que es donde m2e obtiene su información.
Es por eso que debe declarar explícitamente el complemento de compilador maven en su proyecto con algo diferente a 1.5. Su efectivo
pom.xml
utilizará implícitamente el conjunto predeterminado en el complemento compilador mavenpom.xml
.fuente
DEFAULT_SOURCE
yDEFAULT_TARGET
, pero aún ambos están establecidos en 1.5.fuente
Aquí está la causa raíz de Java 1.5:
Referencia: Complemento Apache Mavem Compiler
Los siguientes son los detalles:
Pom.xml liso
El siguiente complemento se toma de una versión expandida de POM (POM efectivo),
Esto se puede obtener con este comando desde la línea de comandos
C:\mvn help:effective-pom
. Acabo de poner aquí un pequeño fragmento en lugar de un pom entero.Incluso aquí no ves dónde se define la versión de Java, vamos a cavar más ...
Descargue el complemento Apache Maven Compiler Plugin »3.1 como está disponible en jar y ábralo en cualquier herramienta de compresión de archivos como 7-zip
Atraviesa el frasco y descubre
archivo dentro de la carpeta
Ahora verá la siguiente sección en el archivo,
Mire el código anterior y descubra las siguientes 2 líneas
Buena suerte.
fuente
quickstart
artefacto.Su JRE probablemente se definió en la configuración de ejecución. Siga estos pasos en Eclipse para cambiar la compilación JRE.
1) Haga clic derecho en el proyecto y seleccione Ejecutar como > Ejecutar configuraciones
2) En la ventana Ejecutar configuraciones, seleccione la configuración de compilación de su proyecto en el panel izquierdo. A la derecha, verá varias pestañas: Principal, JRE, Actualizar, Fuente, ...
3) Haga clic en la pestaña JRE, debería ver algo como esto
4) De forma predeterminada, se utilizará JRE predeterminado de trabajo (el JRE que seleccione como predeterminado en Preferencias-> Java-> JRE instalados ). Si desea utilizar otro JRE instalado, marque la casilla de verificación JRE alternativo y seleccione su JRE preferido en el menú desplegable.
fuente
La solución más simple en Springboot
Te daré la más simple si usas Springboot:
Luego, haga clic derecho en su proyecto Eclipse: Maven> Actualizar proyecto> Actualizar configuración del proyecto desde pom.xml
Eso debería hacer.
fuente
Configuraciones específicas del proyecto
Un lugar más donde esto puede salir mal es en la configuración específica del proyecto, en Eclipse.
propiedades del proyecto: haga clic en su proyecto y en uno de los siguientes:
haga clic en "Compilador Java"
Debido a los requisitos del cliente, los habilitamos para mantener nuestros proyectos en 1.6. Cuando era necesario actualizar a 1.7, tuvimos dificultades porque necesitábamos cambiar la versión de Java por todas partes:
fuente
Una posible razón más si está utilizando Tycho y Maven para construir paquetes, es que tiene un entorno de ejecución incorrecto (
Bundle-RequiredExecutionEnvironment
) en el archivo de manifiesto (manifest.mf
) definido. Por ejemplo:En mi caso, todo lo demás estaba bien. Los complementos del compilador (maven normal y tycho también) se configuraron correctamente, todavía m2 generó un nivel de cumplimiento antiguo debido al manifiesto. Pensé compartir la experiencia.
fuente
Descubrí que mi problema era que alguien había cometido el archivo .project y .classpath que tenía referencias a Java1.5 como el JRE predeterminado.
Al cerrar el proyecto, eliminar los archivos y luego volver a importarlo como proyecto Maven, pude configurar correctamente el proyecto para usar el espacio de trabajo JRE o el jdk relevante sin que volviera a 1.5. Por lo tanto, evite registrar en su SVN los archivos .project y .classpath
Espero que esto ayude a otros.
fuente
Si desea asegurarse de que los proyectos recién creados o importados en Eclipse usen otra versión predeterminada de Java que no sea Java 1.5, puede cambiar la configuración en el complemento de compilación maven.
En las siguientes líneas:
<source implement = "java.lang.String" default-value = "1.5"> $ {maven.compiler.source} </source>
<target implement = "java.lang.String" default-value = "1.5"> $ {maven.compiler.target} </target>
cambie el valor predeterminado a 1.6 o 1.8 o lo que quiera.
De ahora en adelante, todos los proyectos nuevos de Maven utilizarán la versión de Java que especificó.
La información es de la siguiente publicación de blog: https://sandocean.wordpress.com/2019/03/22/directly-generating-maven-projects-in-eclipse-with-java-version-newer-than-1-5/
fuente
Para cambiar la versión de JDK, puede hacer:
1- Proyecto> Propiedades
2- Vaya a Java Build Path
3- En Bibliotecas, seleccione Sistema JRE ... y haga clic en Editar
4- Elija su versión adecuada y valide
fuente