version cible non valide: 1.7

121

J'ai vu des questions similaires, mais je n'ai pas encore trouvé de réponse.

En utilisant maven compile, j'obtiens:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

Voici le pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

Version Javac:

javac 1.7.0_25

Version Java:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

Avez-vous des idées de ce que ça pourrait être?

Karan
la source
14
Maven fonctionne très probablement avec Java 6.
Peter Lawrey
3
Je vérifierais toutes vos variables d'environnement pour voir si l'une d'entre elles utilise Java 6. Par exemple, Java 7 pourrait être sur votre chemin mais je me souviens que maven utilise JAVA_HOME ou quelque chose comme ça.
Peter Lawrey
36
Exécutez mvn -version. Il vous dira quel Java il utilise.
JB Nizet
vous avez raison, mvn utilise java 1.6 - comment puis-je changer cela?
Karan
1
définissez la variable JAVA_HOME sur votre répertoire de base JDK7.
JB Nizet

Réponses:

159

Vous devez définir JAVA_HOME sur votre répertoire de base jdk7, par exemple sous Microsoft Windows:

  • "C: \ Program Files \ Java \ jdk1.7.0_40"

ou sous OS X:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
Michał Nowak
la source
71
Sur un Mac, où jdk6 et jdk7 sont installés, cela peut être forcé dans ~ / .profile:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
Hank
3
jdk8 peut également être utilisé pour obtenir la conformité jdk7
Wolfgang Fahl
3
n'oubliez pas de recharger ~ / .profile sur le mac avec:source ~/.profile
Caio Iglesias
Cela fonctionne probablement pour beaucoup de choses mais ce n'est pas suffisant pour Maven et certainement pas pour le plugin de compilateur maven. Vérifiez la réponse de Mike à sa propre question ici: question stackoverflow 24705877 Cela a résolu le problème pour moi à la fois en ligne de commande ET dans eclipse. De plus, @LinGao répond à la question 2503658 de stackoverflow et l'utilisation de la variable $ JAVACMD peut aider.
Litome
42

Outre la définition de JAVA_HOMEla variable d'environnement, vous devez vous assurer que vous utilisez le bon JDK dans votre configuration d'exécution Maven. Allez dans Exécuter -> Exécuter la configuration , sélectionnez votre configuration Maven Build, accédez à l'onglet JRE et définissez le JRE d'exécution correct.

Configuration d'exécution Maven

Stanley
la source
+1, je savais que j'oubliais de mettre à jour quelque chose ... L'option par défaut (pour moi) lors de la création d'une configuration était le "JRE alternatif". Si quelqu'un d'autre rencontre cela, assurez-vous que votre plugin maven ET vos configurations sont correctement mis à jour!
king14nyr
J'avais le bon JAVA_HOME pour Java 8 mais il me manquait toujours. Vous avez résolu mon problème, merci
dtortola
3

Dans IntelliJ IDEA, cela m'est arrivé lorsque j'ai importé un projet qui fonctionnait bien et fonctionnait avec Java 1.7. Je n'avais apparemment pas notifié à IntelliJ que java 1.7 avait été installé sur ma machine et qu'il ne trouvait pas mon fichier $JAVA_HOME.

Sur un Mac, cela est résolu par:

Clic droit sur le module | Paramètres du module | Projet

et en ajoutant le SDK 1.7 en sélectionnant «Nouveau» dans le SDK du projet.

Ensuite, allez dans le menu principal IntelliJ IDEA | Préférences | Maven | Coureur

et sélectionnez le JRE correct. Dans mon cas, il a été mis à jour correctement Utilisez Project SDK, qui était maintenant 1.7.

user1978019
la source
Notez qu'il existe au moins des paramètres de projet et des préférences pour Intellij sur un Mac, je devais aller dans Paramètres -> Build Exec, Deploy -> Java Compiler, puis définir la version bytecode du projet si nécessaire.
Mis en ligne le
1

Lorsque maven fonctionne en dehors d'Eclipse, mais donne cette erreur après un changement de JDK, accédez à votre configuration d'exécution Maven, et en bas de la page principale, il y a une option 'Maven Runtime'. Le mien utilisait le Maven intégré, donc après l'avoir changé pour utiliser mon maven externe, cela a fonctionné.

djb
la source
où est la configuration de Maven Run, s'il vous plaît?
R Claven
1
Faites un clic droit sur votre build.xml, allez dans «Exécuter en tant que», puis «Exécuter la configuration» devrait être la dernière option. Si vous faites défiler les types de configurations d'exécution, l'une est 'Maven Build', et qui a une option pour choisir le 'Maven Runtime'. Il y a un bouton `` configurer '' à côté de cela
djb
0

Cela fonctionne probablement pour beaucoup de choses mais ce n'est pas suffisant pour Maven et certainement pas pour le plugin du compilateur maven.

Vérifiez la réponse de Mike à sa propre question ici: question stackoverflow 24705877

Cela a résolu le problème pour moi à la fois en ligne de commande ET dans eclipse.

De plus, @LinGao répond à la question 2503658 de stackoverflow et l'utilisation de la variable $ JAVACMD pourrait aider, mais je ne l'ai pas testé moi-même.

Litome
la source