Maven: Ungültige Zielfreigabe: 10

Lesezeit: 11 Minuten

Benutzer-Avatar
BullyWiiPlaza

Ich versuche meine zu kompilieren maven Projekt verwenden Java 10 aber ich habe Probleme. In meiner IDE (IntelliJ IDEA) alles kompiliert und läuft gut darunter Java 10. Ich habe die neueste installiert maven Ausführung 3.5.4 und wies auf meine JAVA_HOME zum JDK 10:

$ mvn --version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T20:33:14+02:00)
Maven home: C:\Maven\bin\..
Java version: 10.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-10.0.2
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

Das maven Befehl, den ich verwende, ist:

mvn package -Dmaven.test.skip

In meinem pom.xml Ich hatte folgendes für Java 8 was gut geklappt hat:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <libraries.directory>libraries</libraries.directory>
</properties>

Zum Java 10 Ich habe es wie folgt geändert:

<maven.compiler.source>10</maven.compiler.source>
<maven.compiler.target>10</maven.compiler.target>

Dies funktioniert nicht, genau wie die Verwendung 1.10 als Version für Quell- und Zielcompiler.

Die vollständige Ausgabe der Debug-Protokollierung (-X Befehlszeilenoption) ist die folgende:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project My-Project: Fatal error compiling: invalid target release: 1.10 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project My-Project: Fatal error compiling
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1086)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:168)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.codehaus.plexus.compiler.CompilerException: invalid target release: 1.10
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:173)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1075)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:168)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: java.lang.IllegalArgumentException: invalid target release: 1.10
    at com.sun.tools.javac.main.OptionHelper$GrumpyHelper.error (OptionHelper.java:103)
    at com.sun.tools.javac.main.Option$12.process (Option.java:216)
    at com.sun.tools.javac.api.JavacTool.processOptions (JavacTool.java:217)
    at com.sun.tools.javac.api.JavacTool.getTask (JavacTool.java:156)
    at com.sun.tools.javac.api.JavacTool.getTask (JavacTool.java:107)
    at com.sun.tools.javac.api.JavacTool.getTask (JavacTool.java:64)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:125)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1075)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:168)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[ERROR]
[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/MojoExecutionException

Hinzufügen der maven-compiler-plugin wie in dieser Antwort vorgeschlagen funktioniert auch nicht:

Fatal error compiling: invalid flag: --release -> [Help 1]

Irgendwelche Ideen, wie man dieses Problem beheben kann?

  • Dies wurde behoben maven-compiler-plugin Version 3.7.1. Sehen issues.apache.org/jira/browse/MCOMPILER-332

    – rodrigoap

    22. Juli 2018 um 20:42 Uhr

  • @rodrigoap Interessant, aber Maven Central hat keine Version 3.7.1 doch so wird es nicht gefunden: mvnrepository.com/artifact/org.apache.maven.plugins/…

    – BullyWiiPlaza

    22. Juli 2018 um 20:50 Uhr


  • Wenn Sie mit -X laufen, sehen Sie Using compiler 'javac'. und was zeigt es für Command line options:?

    – David Konrad

    22. Juli 2018 um 21:38 Uhr

  • Das Protokoll liest Fehler, wenn die falsche Version angegeben wird. Vergewissere dich <release>10<release> Anstatt von 1.10. Teilen Sie die Protokolle mit 10, um zu sehen, was der tatsächliche Fehler ist.

    – Namann

    23. Juli 2018 um 3:52 Uhr


  • @BullyWiiPlaza mvnrepository ist nicht zentral. Diese finden Sie hier: search.maven.org

    – khmarbaise

    23. Juli 2018 um 8:22 Uhr

Dasselbe Problem wurde für mich behoben, indem die Umgebungsvariable JAVA_HOME so eingestellt wurde, dass sie auf das JDK mit der richtigen Version zeigt.

Meine Quell- und Ziel-Java-Version im Maven-Compiler-Plugin waren 11, java -version war auch auf Version 11, aber mein JAVA_HOME zeigte auf JDK-1.8.

Überprüfen Sie JAVA_HOME erneut, indem Sie ein Terminal anstelle von IDE verwenden:

Linux:
echo $JAVA_HOME

Win:
echo %JAVA_HOME%

Erstellen Sie dann Ihr Projekt im selben Terminal:

mvn clean package

  • Das hat bei mir auch funktioniert. Gehen Sie unter Windows zu Umgebungsvariable, dann zu Systemvariablen und bearbeiten Sie die PATH-Variable mit dem Java-JDK-Pfad

    – Daniel Belém Duarte

    15. Juni 2021 um 19:41 Uhr

Das hat bei mir funktioniert:

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

Diese Antwort besagt, dass Sie Folgendes benötigen:

<dependencies>
    <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm</artifactId>
        <version>6.2</version> <!-- Use newer version of ASM -->
    </dependency>
</dependencies>

innerhalb der <plugin/> -Tag, aber die neuere mvn (3.5.4) muss das verhindern, da ich es nicht brauchte.

  • Unabhängig davon, ob die Abhängigkeit hinzugefügt wurde oder nicht, bekomme ich immer noch Fatal error compiling: invalid flag: --release -> [Help 1]. javac -help sagt --release <release> Compile for a specific VM version. Supported targets: 10, 6, 7, 8, 9.

    – BullyWiiPlaza

    22. Juli 2018 um 21:04 Uhr


  • Die einfache Sache ist, dass Sie verwenden sollten <maven.compiler.release>9</maven.compiler.release> Anstatt von <maven.compiler.source>..</maven.compiler.sources> und <maven.compiler.target>..</maven.compiler.target> Beginnend mit JDK 9, weil JDK 8 eine hat --release Möglichkeit…

    – khmarbaise

    23. Juli 2018 um 8:30 Uhr

  • maven-compiler-plugin=3.7.0 + release=10 funktionierte wie ein Zauber.

    – Oleksii Kyslytsyn

    6. Oktober 2018 um 23:26 Uhr

  • Ändern JAVA_HOME kann auch erforderlich sein: stackoverflow.com/a/52139841/2568885

    – binoternär

    7. Oktober 2018 um 21:10 Uhr

  • für die Java-Version von 1.6 bis 1.10: 1.x ist in Ordnung. Aber für 11 sollte es “11” statt “1.11” sein.

    – Karl Li

    22. Februar 2019 um 3:09 Uhr


Holen Sie sich Ihre Java-Version, indem Sie sie ausführen java -version.

Sie erhalten eine Ausgabe wie:

java version "1.8.0_201"

Gehen Sie nun zu Ihrer POM-Datei und aktualisieren Sie die Quell- und Zieleigenschaften von maven-compiler-plugin mit Ihrer installierten Java-Version. Bei mir sind es 1,8

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

  • Guter Hinweis zur Überprüfung der installierten Java Version, aber die Frage war eher über die Verwendung Java 10 und nicht zurück zu setzen 8.

    – BullyWiiPlaza

    28. Mai 2019 um 20:52 Uhr

Ich hatte ein ähnliches Problem mit Spring Boot und Java 11. Ich habe es gelöst, indem ich die folgende Eigenschaft in meinem Pom definiert habe

<maven.compiler.release>11</maven.compiler.release>

Könnte für jemanden in der Zukunft nützlich sein.

Dies bedeutet, dass Sie java.version 10 verwenden, das Sie nicht installiert haben.

<properties>
    <java.version>10</java.version>
</properties>

Da Sie Intellij verwenden, müssen Sie die folgenden Schritte ausführen (hier verwende ich Java 11, aber dasselbe gilt auch für Java 10 und andere Versionen) –

  1. Ändern Sie SDK unter Projektstruktur auf Java 11

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

  1. Ändern Sie das Sprachniveau für Module (falls erforderlich) unter Projektstruktur

Geben Sie hier die Bildbeschreibung ein

  1. Ändern Sie JRE unter Runner in den Einstellungen

Geben Sie hier die Bildbeschreibung ein

  1. Ändern Sie die Ziel-Bytecode-Version unter Java-Compiler in den Einstellungen

Geben Sie hier die Bildbeschreibung ein

  1. Überprüfen Sie die Maven-Version unter Maven in den Einstellungen für die Unterstützung von Java 11
    Geben Sie hier die Bildbeschreibung ein

  2. Erwähnen Sie in Ihrem Pom die Version wie folgt, Sie können das Codierungs-Tag hier ignorieren

Geben Sie hier die Bildbeschreibung ein

  1. Bestätigen Sie abschließend Ihre Ausführungskonfiguration, bevor Sie das Projekt erstellen

Geben Sie hier die Bildbeschreibung ein

  1. Wenn Sie einen Windows-Computer verwenden, ändern Sie die Umgebungsvariablen JAVA_HOME, Path und MAVEN_HOME entsprechend.

Benutzer-Avatar
Nackt

Überprüfen Sie Ihre JAVA_HOME-Version. Es scheint, dass Ihre Java-Version in JAVA_HOME und in POM unterschiedlich ist. Legen Sie den JAVA_HOME-Pfad richtig fest, indem Sie die Umgebungsvariable in Windows bearbeiten.

1144590cookie-checkMaven: Ungültige Zielfreigabe: 10

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy