J'utilise Eclipse comme IDE. Lorsque je clique avec le bouton droit sur le projet, puis cliquez sur maven, mettez à jour ma version de Java en version 1.5. Voici ce que j'ai fait jusqu'à présent, j'ai suivi toutes les étapes énumérées ici
<build>
<plugins>
<plugin>
<groupId>org.Eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.1.3.v20140225</version>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugin</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Après tout cela, lorsque je clique sur "Maven update", ma version Java passe automatiquement à la version 1.5. Toujours dans les étapes ci-dessus, la version des deux premières étapes passe également automatiquement à la version 1.5. Comment puis-je réparer cela?
Ouvrez votre fichier pom.xml
et ajoutez les lignes suivantes:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Où 1.8
est la version Java de votre JDK/JRE actuel. Une autre façon de faire consiste à ajouter un <build>
avec le maven-compile-plugin
en tant que
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version> <!-- or whatever current version -->
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
MODIFIER
Si vous cherchez un moyen de le faire fonctionner avec les versions 9+ de Java, veuillez consulter @ JDelorean'srépondre ici et n'oubliez pas de lui donner un vote positif également. :)
Avait le même problème quand j'ai installé Java 9. Mon projet serait par défaut à l'environnement d'exécution J2SE-1.5. Étrangement, le niveau de conformité de Java 9 n’est pas référencé comme les versions précédentes, c’est-à-dire "1.8", mais comme "9". Je devais donc fournir mes propriétés et la configuration du plug-in du compilateur Maven en conséquence:
<properties>
<maven.compiler.source>9</maven.compiler.source>
<maven.compiler.target>9</maven.compiler.target>
</properties>
et
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
Cela semble avoir résolu le problème.
La cause principale de ce problème est que si pour une raison quelconque, Eclipse ne peut pas résoudre une valeur valide pour la propriété maven.compiler.source
lors de la génération/mise à jour du fichier .classpath à partir du pom, il utilisera simplement org.Eclipse.jdt.launching.JRE_CONTAINER/org.Eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5
.
Comme l'a répondu savamment @ jorge-campos , il existe plusieurs façons de définir cette propriété.
Cependant, la réponse de Jorge ne semblait pas fonctionner pour moi. Voici mes réglages:
<properties>
<javaVersion>1.8</javaVersion>
<maven.compiler.source>${Java.version}</maven.compiler.source>
<maven.compiler.target>${Java.version}</maven.compiler.target>
</properties>
...
Exactement. ${Java.version}
est jamais va résoudre la propriété (complètement différente) javaVersion
et Eclipse a ignoré la propriété et utilisé la valeur par défaut.
Ce qui me ramène à la partie "pour une raison quelconque" avec laquelle j'ai ouvert; La bêtise du développeur peut être l'une de ces raisons.
Ajoutez ces lignes à votre fichier pom.xml, puis cliquez avec le bouton droit de la souris sur la bibliothèque système JRE -> Propriétés -> Définissez votre environnement d’exécution correct sur Java 1.8 ou sur la version à définir.
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version> <!-- or whatever current version -->
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
J'ai eu ce problème. Dans mon cas, les balises <properties> et les balises imbriquées que Jorge Campos a mentionnées ci-dessus étaient au mauvais endroit. Si je les mets entre les balises <hostversion> et <dependencies> dans le fichier pom.xml, alors ce comportement a cessé.
Cela peut être repris dans Eclipse si la validation de ces fichiers est activée.
Je rencontre un problème similaire sur une machine de mon coéquipier. Il utilisait l'ancienne version d'Eclipse, je crois qu'il utilisait Keppler. Après la mise à jour du projet, changez la version de JRE en 1.5.
La simple mise à jour d'Eclipse vers la dernière version résout ce problème.
Je me permets de mettre à jour ce sujet avec Java 11.
J'ai installé OpenJDK11 sur mon ordinateur et je voulais l'utiliser dans une application.
J'ai eu des problèmes parce qu'Eclipse changeait toujours mon JRE en JavaSE-1.5 lorsque je mettais mon projet à jour avec Maven.
J'avais tout défini comme vous l'avez dit, mais je sélectionnais toujours directement dans mon chemin de construction Java "Java-11-openjdk.x86_64" comme étant l'un de mes fichiers JRE Alternante. J'ai résolu mon problème en sélectionnant dans "Execution environment" JavaSE-10 (mais vous devez double-cliquer dessus puis choisir comme version compatible JRE votre version OpenJDK11) comme indiqué sur l'image . Configuration de l'environnement d'exécution
Le projet utilisera Java 11 grâce à cela (image), mais vous devez écrire 10 pour la version Java dans le fichier pom.xml et définir Java 10 sur les facettes du projet.
Dans mon cas (ancien JBoss Developer Studio), le problème était que les environnements JRE n'incluaient pas la 1.8 (seulement la 1.7). Lorsque je suis passé de la version maven-compiler-plugin
à la version 1.7 et que j’ai mis le projet de mise à jour à jour, il a mis à jour la bibliothèque système Eclipse JRE vers la version 1.7 .
La solution consiste donc à obtenir une version IDE plus récente comprenant un environnement JRE intégré 1.8 ou ultérieur, ou à essayer de l'installer manuellement (voir https://stackoverflow.com/a/35204314 )