Lors de l'exécution de notre construction Maven, un membre de mon équipe obtient this error lors de l'exécution. Cependant, lorsque nous exécutons Java -version
à partir de sa ligne de commande, il indique Java 1.6.0_26. L’erreur semble évidemment crier que Maven utilise Java 5.
Comment savoir et changer la version de Java utilisée par Maven?
3 notes potentiellement importantes:
mvn -version
affichera le Java utilisé. Si Java_HOME est défini sur un répertoire JDK valide et que Maven utilise autre chose, il est fort probable que quelqu'un a modifié le mode de démarrage de Maven.
Vous devrez configurer maven-compiler-plugin
pour utiliser les paramètres 1.6 source
et target
(la valeur par défaut est 1,5).
C’est ce qui se fait de mieux dans la section <pluginManagment>
du pom parent de votre projet (mais vous pouvez toujours le configurer pour des projets individuels, bien sûr).
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
mvn -version
vous indique le compilateur utilisé par Maven, cela répond donc à la question sauf votre POM spécifie les valeurs de substitution pour les versions à utiliser.
Voici le moyen le plus simple de spécifier les remplacements dans pom.xml
:
<properties>
<maven.compiler.target>1.9</maven.compiler.target>
<maven.compiler.source>1.9</maven.compiler.source>
</properties>
Sinon, le maven-compiler-plugin
peut être spécifié plus explicitement. Dans ce cas, examinez les valeurs <source>
et <target>
associées au plug-in.
Ces deux options sont décrites ici .
Si votre POM a un <parent>
, alors vous devez également le vérifier (récursivement).
Remarque: lorsque source
et target
sont spécifiés, ces valeurs sont transmises en tant qu'options de ligne de commande au compilateur. Cette fonctionnalité permet de compiler ou d'exécuter des versions de Java antérieures à la valeur nominale du compilateur.