tutorial run intellij idea dependency configurar java maven intellij-idea maven-3

java - run - Error de compilación de Maven:(use-source 7 o superior para habilitar el operador de diamante)



maven tutorial (4)

SOLUCIÓN 1: establezca estas propiedades en pom.xml

<properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties>

SOLUCIÓN 2 - Configure el complemento del compilador Maven (siempre en pom.xml)

<build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> ...

POR QUÉ SUCEDE

El problema surge porque

[...] actualmente la configuración de origen predeterminada es 1.5 y la configuración de destino predeterminada es 1.5, independientemente del JDK con el que ejecuta Maven. Si desea cambiar estos valores predeterminados, debe establecer el origen y el destino como se describe en Configuración del origen y el destino del compilador de Java.

Introducción al complemento del compilador Maven (hasta la versión 3.3)

y con versiones recientes de Maven:

También tenga en cuenta que actualmente la configuración de origen predeterminada es 1.6 y la configuración de destino predeterminada es 1.6, independientemente del JDK con el que ejecuta Maven. Le recomendamos encarecidamente que cambie estos valores predeterminados configurando el origen y el destino como se describe en Configuración del origen y el destino del compilador de Java.

Introducción al complemento del compilador Maven

Es por eso que cambiar el JDK no tiene ningún efecto en el nivel de origen. Entonces tiene un par de maneras de decirle a Maven qué nivel de fuente usar.

VERSIÓN JDK PARA USAR?

Si establece un objetivo 1.7 como en este ejemplo, asegúrese de que el comando mvn se ejecute realmente con un jdk7 (o superior)

NIVEL DE IDIOMA EN EL IDE

Por lo general, los IDE usan el archivo maven pom.xml como fuente de configuración del proyecto. Cambiar la configuración del compilador en el IDE no siempre tiene efecto en la construcción de Maven. Por eso, la mejor manera de mantener un proyecto siempre manejable con maven (e interoperable con otros IDEs) es editar los archivos pom.xml e indicar al IDE que se sincronice con maven.

Estoy usando maven en IntelliJ, JDK1.8, maven 3.2.5. Se produjo un error de compilación: use -source 7 o superior para habilitar la ópera de diamante. los detalles son los siguientes:

[ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] TrainingConstructor.java:[31,55] diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator) [ERROR] DTM.java:[79,21] try-with-resources is not supported in -source 1.5 (use -source 7 or higher to enable try-with-resources) [ERROR] ticons.java:[53,44] diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator)

¿Alguna sugerencia? ¿Hay alguna otra configuración para establecer este nivel de origen? Parece que no usa Java 1.8.


Comprueba cómo está configurado tu maven-compiler-plugin , debe usar java versión 7 o superior:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin>

Para una respuesta más completa, vea la siguiente .


Si ya probó la solución @Sergey Pauk y @khmarbaise, eche un vistazo también en la configuración -> Compilación, Ejecución, Implementación -> Compilador -> Compilador Java, existen versiones de código de bytes de destino para módulos particulares


Tienes que cambiar tu configuración:

<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> [...] </build> [...] </project>

Debe aprender la diferencia entre la opción source/taget en JavaC y el uso de JDK 1.8 / 1.7, etc.

Aparte de eso, debe actualizar el uso de maven-compiler-plugin.