Ich verwende maven in IntelliJ, JDK1.8, maven 3.2.5. Kompilierungsfehler: Verwenden Sie -source 7 oder höher, um die Diamantoper zu aktivieren. die Details sind wie folgt:
[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)
Irgendwelche Vorschläge? Gibt es eine andere Konfiguration, um diese Quellenebene festzulegen? scheint es nicht zu verwenden Java 1.8.
Überprüfen Sie, wie Ihr maven-compiler-plugin
ist konfiguriert und sollte Java Version 7 oder höher) verwenden:
<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>
Für eine vollständigere Antwort siehe die unten stehende .
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
...
Das Problem entsteht da
Derzeit ist die Standardquelleneinstellung 1,5 und die Standardzieleinstellung 1,5 , unabhängig von dem JDK, mit dem Sie Maven ausführen. Wenn Sie Um diese Standardeinstellungen zu ändern, sollten Sie Quelle und Ziel wie unter Festlegen von -source und -target des Java Compilers beschrieben festlegen.
und mit neueren Maven-Versionen:
Beachten Sie auch, dass die Standardquelleneinstellung derzeit 1.6 und die Standardzieleinstellung 1.6 ist, unabhängig von dem JDK, mit dem Sie Maven ausführen. Es wird dringend empfohlen, diese Standardeinstellungen zu ändern, indem Sie Quelle und Ziel festlegen, wie unter Festlegen der -Quelle und des -Ziels von Java Compiler.
Aus diesem Grund hat das Ändern des JDK keine Auswirkungen auf die Quellenebene. Sie haben also ein paar Möglichkeiten, Maven mitzuteilen, welche Quellenebene verwendet werden soll.
Wenn Sie ein Ziel 1.7 wie in diesem Beispiel festlegen, stellen Sie sicher, dass der Befehl mvn tatsächlich mit einem jdk7 (oder höher) gestartet wird.
Normalerweise verwenden IDEs die Datei maven pom.xml als Quelle für die Projektkonfiguration. Das Ändern der Compiler-Einstellungen in IDE hat nicht immer Auswirkungen auf den Maven-Build. Aus diesem Grund ist es am besten, das POM zu bearbeiten, damit ein Projekt immer mit Maven verwaltet werden kann (und mit anderen IDEs kompatibel ist) .xml-Dateien und weisen Sie die IDE an, mit maven zu synchronisieren.
Sie müssen Ihre Konfiguration ändern:
<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>
Sie sollten den Unterschied zwischen der Option source/taget
In JavaC und der Verwendung von JDK 1.8/1.7 usw. lernen.
Ansonsten sollten Sie das use maven-compiler-plugin upgraden.
Wenn Sie bereits die @Sergey Pauk- und @khmarbaise-Lösung ausprobiert haben, sehen Sie auch in den Einstellungen nach -> Build, Execution, Deployment -> Compiler -> Java Compiler, es gibt Ziel-Bytecode-Versionen für bestimmte Module