web-dev-qa-db-fra.com

Compilateur Maven 3.8.0 - Erreur irrécupérable lors de la compilation: la version 11 n'est pas prise en charge

Je ne parviens pas à construire avec Java 11 avec la dernière version du plugin maven-compiler-plug-in.

pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <release>11</release>
            </configuration>
        </plugin>
    <plugins>
<build>

quand j'essaie de construire avec Maven:

➜  mvn clean compile
[INFO] Scanning for projects...
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Building service 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ service ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 80 source files to /home/mip/service/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.859 s
[INFO] Finished at: 2018-08-01T11:20:55+01:00
[INFO] Final Memory: 32M/124M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project service: Fatal error compiling: release version 11 not supported -> [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/MojoExecutionException

Voici les versions Maven et Java que j'utilise:

➜  mvn -version
Apache Maven 3.5.2
Maven home: /usr/share/maven
Java version: 10.0.1, vendor: Oracle Corporation
Java home: /usr/lib/jvm/Java-11-openjdk-AMD64
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-29-generic", Arch: "AMD64", family:     "unix"
➜  /usr/lib/jvm/Java-11-openjdk-AMD64/bin/Java -version
openjdk version "10.0.1" 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)

Le problème est-il Java 11 s'identifiant comme "10.0.1"? Si je modifie mon pom.xml en <release>10</release> _ alors il se construit sans problème, même si je n’ai pas Java 10 installé.

➜  ~ /usr/lib/jvm/Java-11-openjdk-AMD64/bin/javac -version
javac 10.0.1 

➜ javac --release 11 SomeClass.Java
javac: release version 11 not 
supported Usage: javac <options> <source files>
use --help for a list of possible options

Je pense que cela est un problème avec le Ubuntu openjdk-11-jdk paquet:

➜  ~ Sudo apt install openjdk-11-jdk
Reading package lists... Done
Building dependency tree       
Reading state information... Done
openjdk-11-jdk is already the newest version (10.0.1+10-3ubuntu1).
0 to upgrade, 0 to newly install, 0 to remove and 2 not to upgrade.
20
mip

mVN besoin Java_HOME à régler. J'ai fait face au même problème et mis en place Java_HOME pour corriger JDK a fait l'affaire.

12
Ankit Bhartiya

Pour moi, cela venait du fait d'avoir Java 11 JRE installé et non pas un JDK. Le nom du dossier contenait "jdk", j'ai donc supposé que c'était correct, mais en cherchant dans le /bin dossier Je n'ai pas vu d'exécutable javac, donc je pense qu'il est tombé à la valeur par défaut Java sur le système qui était antérieur à Java 11.

1
KC Baltz

En terminal:

mvn -version

Exemples - Java version: 9.0.4

Autre plugin utilisé:

<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>9.0.4</release>
</configuration>
</plugin>
</plugins>
0