Usando IntelliJ 12, tengo un proyecto java y uso maven con un pom.xml. Mi proyecto está utilizando java8, pero parece que el nivel de idioma predeterminado del proyecto se ha establecido en 6 al importar el proyecto.
Puedo cambiar el nivel de idioma a 8.0 (F4 -> Módulos -> Nivel de idioma), sin embargo, cada vez que edito mi pom.xml el nivel del proyecto vuelve a "usar el nivel de idioma del proyecto", y tengo que editar esta configuración nuevamente y de nuevo.
¿Hay algo que deba agregar al pom.xml para establecer el nivel de idioma predeterminado en 8.0?
java
maven
intellij-idea
pom.xml
Quentin
fuente
fuente
Respuestas:
Según el comentario de Mark, aquí está cómo hacerlo:
fuente
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Una versión más corta de la respuesta de vikingsteve es:
fuente
Creo que esto tiene que ver con un conflicto conceptual entre el complemento del compilador Maven y la idea IntelliJ. Aparentemente, las versiones más nuevas del complemento del compilador tienen un nivel predeterminado de 1.5 (consulte http://maven.apache.org/plugins/maven-compiler-plugin/ ). Entonces, si el complemento del compilador se usa en absoluto en un proyecto, y el nivel del compilador no se establece explícitamente en el pom.xml, cada vez que se procese nuevamente el POM, el nivel volverá al valor predeterminado.
Por lo tanto, hay un conflicto conceptual que Intellij IDEA ignora. El IDE todavía le permite a uno configurar el proyecto y la configuración del módulo, pero no proporciona ninguna advertencia o retroalimentación de que esta configuración está controlada por pom.xml. Las soluciones serían permitir explícitamente anular la configuración del complemento del compilador de POM (tal vez no sea sabio porque lo que sucede cuando usa maven en la línea de comando), o desactivar los controles en el IDE cuando esta configuración del POM está vigente.
La solución en este momento es establecer el nivel de compilador deseado en el complemento del compilador en el pom, la reimportación, en lugar de intentar establecerlo en la configuración del módulo.
fuente
Estoy actualizando un proyecto de JDK 8 a JDK 10+. Tenía las propiedades del compilador especificadas correctamente de la siguiente manera:
Sin embargo, el proyecto Idea seguiría restableciendo el nivel de idioma a 8.
Eventualmente descubrí que el proceso de importación de Idea Maven estaba usando JDK 8 para importar el proyecto que limitaba el nivel de idioma a <= 8.
Para solucionarlo , actualicé la propiedad 'JDK para importador' en Configuración -> Compilación, Ejecución, Implementación -> Herramientas de compilación -> Maven -> Importar para usar JDK 11.
fuente
Hay dos formas de hacerlo, agregue cualquiera de ellas en su archivo pom.xml:
Primero: Agregar propiedades
segundo- Agregar complemento
Avísame si te ayuda.
fuente
Ninguna de las soluciones ayudó en mi caso. No necesitaba especificar ninguna versión de Java en mi
pom.xml
.Necesitaba abrir el
<project-name>.iml
archivo y cambiar la versión JDK allí.Original:
Actualizado:
Esto no tiene ningún sentido. En ningún momento he especificado una versión JDK para Java 1.5.
fuente
Luché mucho con este problema, debido a la construcción de microservicios con Dropwizard. Finalmente descubrí que tenía mis propiedades de compilación en el archivo pom incorrecto (El servicio principal
pom.xml
).Entonces, aunque los otros paquetes son más como bibliotecas , no pude usar la sintaxis de Java 8.
Cuando refactoricé el complemento de compilación en el
.pom.xml
archivo "global" , todos los contenedores secundarios pudieron usar la nueva sintaxis.Puede ayudar a alguien que tiene problemas con proyectos de contenedores múltiples
fuente
Para mí, la solución de actualizar el POM (complementos más propiedades) a la versión requerida del compilador de Java (1_7 en mi caso) funcionó. Sin embargo, como el archivo .iml para cada proyecto se generó con pom original (con la versión de compilador predeterminada de 1_5 como se explicó anteriormente) tiene una versión JDK de 1_5, esto todavía anula la versión de pom.
Eliminé la carpeta .idea manualmente e importé el módulo a IntelliJ con una reimportación desde el pom actualizado. Cuando reimporté el Módulo desde POM actualizado, pude ver que los archivos iml tenían la versión JDK actualizada (1_7 en mi caso).
fuente
Tenía que seguir un paso adicional, además de configurar las propiedades de compilación de maven , agregar el complemento compilador de maven y modificar la versión de Java en el archivo .iml . (cada uno ya documentado en las otras respuestas). También debe configurar la versión del compilador en la configuración .
fuente