web-dev-qa-db-fra.com

La version Java passe automatiquement à Java 1.5 après la mise à jour de maven

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 

http://qussay.com/2013/09/13/solving-dynamic-web-module-3-0- requiert: java-1-6-or-newer-in-maven-projects/

  1. J'ai remplacé "chemin de compilation Java" par "espace de travail par défaut jre 1.8.0_25".
  2. Puis changé "compilateur Java" à 1.8
  3. Puis changé "facettes du projet"> Java> 1.8
  4. Version Java de pom.xml remplacée par la version 1.8
    <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?

75
asdlfkjlkj

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>

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

154
Jorge Campos

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.

9
JDelorean

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.

4
David Avendasora

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> 
2
Avinav Mishra

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.

1
nsandersen

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.

1
user902383

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.

0
Claeyssic

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 .  enter image description here

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 )

0
blindcodifier9734