ERROR Source Option 1.5 wird nicht mehr unterstützt. Verwenden Sie 1.6 oder höher


77

Es passiert alles, als ich versuchte, eine Springboot-Anwendung von zu erstellen ./mvnw clean install

Wenn ich den Installationsbefehl zum ersten Mal ausführe, tritt das folgende Problem auf.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.749s
[INFO] Finished at: Fri Jun 21 02:14:32 IST 2013
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------
**[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project spring-social-twitter4j: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile failed: A required class was missing while executing org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile: org/codehaus/plexus/compiler/CompilerException**
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-compiler-plugin:2.3.2
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/SS%20Computer/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar
[ERROR] urls[1] = file:/C:/Users/SS%20Computer/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR] 
[ERROR] -----------------------------------------------------: org.codehaus.plexus.compiler.CompilerException
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

Ich habe das Problem auf Stackoverflow gesucht und konnte dieses Problem per Post lösen

Fehler beim Ausführen des Ziels org.apache.maven.plugins: maven-compiler-plugin: 2.3.2: compile (default-compile)

Dann geriet ich in ein anderes Problem

[ERROR] Source option 1.5 is no longer supported. Use 1.6 or later.
[ERROR] Target option 1.5 is no longer supported. Use 1.6 or later.

Ich bin auf OS X. mvn -vzeigt:

Maven home: /Users/matthuntington/Desktop/apache-maven-3.5.0
Java version: 9, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.12.6", arch: "x86_64", family: "mac"

Hier ist meine POM-Datei

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.packtpub.restapp</groupId>
    <artifactId>ticket-management</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>ticket-management</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>


    <dependencies>
            <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.0.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>1.5.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <version>1.5.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <version>1.5.7.RELEASE</version>                
        </dependency>   
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

1
Sie verwenden Spring Boot 1.5 unter Java9, eine grundsätzlich nicht unterstützte Kombination. Sie versuchen auch, Spring Boot 1.5 mit Spring 5 zu verwenden, während es für Spring 4.3 ausgelegt ist.
M. Deinum

@M. Deinum. Ja, du hast recht.

Antworten:


149

Sie können die Quell- / Zielversion von maven angeben, indem Sie diese Eigenschaften zu Ihrer Datei pom.xml hinzufügen

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

2
In meinem Fall war es kein Spring Boot und es gab keine 1.5-Spezifikation in der pom.xml, wahrscheinlich ist 1.5 die Standardeinstellung. Ich habe <properties> als Kind von <project> hinzugefügt, und es hat funktioniert.
18446744073709551615

62

Ich denke das bedeutet das

  • Sie verwenden JDK9 oder höher
  • Ihr Projekt verwendet das Maven-Compiler-Plugin mit einer alten Version, die standardmäßig Java 5 verwendet.

Sie haben drei Möglichkeiten, um dies zu lösen

  1. Downgrade auf JDK7 oder JDK8 (meh)
  2. Verwenden Sie die Maven-Compiler-Plugin- Version oder höher, weil

    HINWEIS: Seit 3.8.0 hat sich der Standardwert von 1,5 auf 1,6 geändert. Siehe https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#target

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
    </plugin>
    
  3. Geben Sie dem Maven-Compiler-Plugin an, Quelllevel 6 und Ziel 6 (oder höher) zu verwenden.

    Best Practice empfohlen von https://maven.apache.org/plugins/maven-compiler-plugin/

    Beachten Sie auch, dass derzeit die Standardquelleneinstellung 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 des Java-Compilers beschrieben.

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

    oder verwenden

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

14

Dieser Fehler kann auch für Plugin-Versionen auftreten. Sie können das Problem in der .POM- Datei wie folgt beheben :

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

3

Stellen Sie sicher, dass Ihre pom.xmlDatei die folgende Konfiguration enthält.

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

2

Für mich bestand die Lösung darin, die Version des Maven-Compiler-Plugins auf 3.8.0 zu setzen und die Version anzugeben (9 für in Ihrem Fall, 11 in meinem).

    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.0</version>
      <configuration>
        <release>11</release>
      </configuration>
    </plugin>

2

Das hat bei mir funktioniert !!!!

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>academy.learnprogramming</groupId>
    <artifactId>hello-maven</artifactId>
    <version>1.0-SNAPSHOT</version>
<dependencies>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <target>10</target>
                <source>10</source>
                <release>10</release>
            </configuration>

        </plugin>
    </plugins>
</build>
</project>

2

In IntelliJ:

  1. Öffnen Project Structure( ⌘; )> Modules> YOUR MODULE-> Sprachniveau: Satz 9, in Ihrem Fall.
  2. Wiederholen Sie dies für jedes Modul.

Bildschirmfoto


1

Es kann eine beschädigte JAR-Datei geben, für die möglicherweise der Fehler "ZipFile ungültiger LOC-Header (fehlerhafte Signatur)" angezeigt wird. Sie müssen alle JAR-Dateien löschen, für die der Fehler angezeigt wird, und diese Abhängigkeit hinzufügen

 <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>3.0-alpha-1</version>
    <scope>provided</scope>
</dependency>

0

Ich habe folgende Fehlermeldung erhalten: "Quelloption 5 wird nicht mehr unterstützt. Verwenden Sie 6 oder höher", nachdem ich die Datei pom.xml geändert habe

<java.version>7</java.version>

zu

<java.version>11</java.version>

Später, um zu realisieren, wurde die Eigenschaft mit einem Strich eines Punktes verwendet:

  <source>${java-version}</source>
  <target>${java-version}</target>

(schwört), ich habe den Punkt durch einen Bindestrich ersetzt und der Fehler ist verschwunden:

<java-version>11</javaversion>

-1

Sie müssen JDK 1.5 auf Ihr Projekt einstellen, und alle abhängigen Projekt- oder JAR-Dateien sollten ebenfalls mit JDK 1.5 kompiliert werden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.