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