wake-up-neo.com

Maven-Kompilierungsfehler: (Verwenden Sie -source 7 oder höher, um den Diamantoperator zu aktivieren.)

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.

44
HappyCoding

Ü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 .

70
Sergey Pauk

LÖSUNG 1 - Legen Sie diese Eigenschaften in der Datei pom.xml fest

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

LÖSUNG 2 - Konfigurieren Sie das Maven-Compiler-Plugin (immer in der Datei pom.xml)

<build>

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

WARUM ES PASSIERT

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.

Maven Compiler Plugin Einführung (bis Version 3.3)

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.

Maven Compiler Plugin Einführung

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.

JDK-VERSION ZU BENUTZEN?

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.

SPRACHENEBENE AUF DER IDEE

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.

54
Fabio Bonfante

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.

5
khmarbaise

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

2
pezetem