J'essaie de mettre en place un projet maven simple avec Java 11. Comme je veux garder Java_HOME en version 8, j'utilise maven-toolchains-plugin
pour que maven utilise jdk11 pour ce projet.
Alors que maven trouve avec succès une chaîne d'outils correspondante pour jdk-11.0.1, je reçois toujours "javac: flag invalide: --release". Qu'est-ce que je fais mal?
Voici les configurations des plugins:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>11</version>
</jdk>
</toolchains>
</configuration>
</plugin>
La chaîne d'outils est définie comme:
<toolchain>
<type>jdk</type>
<provides>
<version>11</version>
<id>JavaSE-1.11</id>
</provides>
<configuration>
<jdkHome>C:\Program Files\Java\jdk-11.0.1\bin</jdkHome>
</configuration>
<toolchain>
Changer la version jdk devrait résoudre le problème principalement. Remplacer
<version>1.11</version>
avec
<version>11</version>
Assurez-vous cependant que votre maven est configuré avec JDK-11 en utilisant la commande mvn -version
et en confirmant la Java ici. Vous pouvez également vérifier la toolchains.xml
JDK également configuré.
Dans le cas où vous essayez de compiler en utilisant différentes versions du compilateur, vous devez vous assurer que les exécutions sous maven-compiler-plugin
comme:
<executions>
<execution>
<id>Java11</id>
<phase>none</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<release>11</release>
<jdkToolchain>
<version>11</version>
</jdkToolchain>
<compileSourceRoots>
<compileSourceRoot>${project.basedir}/src/main/Java11</compileSourceRoot>
</compileSourceRoots>
<outputDirectory>${project.build.outputDirectory}/META-INF/versions/11</outputDirectory>
</configuration>
</execution>
</executions>
Voici le exemple pom.xml
mentionné ci-dessus.