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>
Epox
quelle
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>
user8389458
quelle
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>
    
rds
quelle
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>
Community Ans
quelle
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>
Ravikumar Kumarasamy
quelle
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>
KC Baltz
quelle
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>
MOHAMMAD SIKANDAR
quelle
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

Epox
quelle
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>
Rohan Pandey
quelle
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>
Starten Sie das Universum neu
quelle
-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

Pankaj Kumar
quelle