Nous venons de mettre à jour le projet de jdk 1.6
à jdk 1.8
. En construisant le projet dans ma machine, je reçois une erreur suivante.
[ERREUR] Échec d'exécution du but org.Apache.maven.plugins: maven-compiler-plugin: 3.3: compiler (compilation par défaut) sur une exception de projet: erreur irrécupérable lors de la compilation: non valide version cible: 1.8 -> [Aide 1]
Voici le plugin maven compiler qui a été utilisé
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
J'ai consulté les nombreux articles et la plupart d'entre eux étaient liés au fait de ne pas avoir la version correcte configurée pour Java_home. J'ai vérifié tous ces aspects et je n'ai trouvé aucun d'entre eux alarmant.
Version Java -
qadeersmsiphone:main pdubey$ Java -version
Java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
Version Maven -
qadeersmsiphone:main pdubey$ mvn -version
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 08:22:22-0700)
Maven home: /usr/share/maven
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.5", Arch: "x86_64", family: "mac"
et j'ai vérifié que lors de la construction du projet Maven utilise jdk 1.8
qadeersmsiphone:main pdubey$ mvn install -debug
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 08:22:22-0700)
Maven home: /usr/share/maven
Java version: 1.8.0_51, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.5", Arch: "x86_64", family: "mac"
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from /usr/share/maven/conf/settings.xml
[DEBUG] Reading user settings from /Users/pdubey/.m2/settings.xml
[DEBUG] Using local repository at /Users/pdubey/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /Users/pdubey/.m2/repository
[INFO] Scanning for projects...
UPDATE: Je pourrais le faire fonctionner en supprimant le maven-compiler-plugin dans le fichier pom (idéalement, je ne veux pas faire cela). Et j'ai également observé que même si je supprimer ce plugin, maven télécharge par défaut la version 3.3 de compilateur plugin dans mon repo local. Je ne suis pas sûr de ce qui ne va pas dans ceci plugin bien que la source et la cible semblent être correctes.
Vérifiez la version de Java et Javac - Ma version de Java était 1.8.0_51
$ Java -version
Java version "1.8.0_51"
Mais la version de javac pointait sur le vieux jdk 1.7.0_67
$ javac -version
javac 1.7.0_67
Il y a deux ou trois choses que nous devrions essayer -
Assurez-vous que le lien symbolique pointe pour corriger jdk. Sinon, supprimez le lien existant et créez-en un nouveau pour votre jdk
cd /System/Library/Frameworks/JavaVM.framework/Versions/
rm CurrentJDK
ln -s /Library/Java/JavaVirtualMachines/<jdk version>.jdk/Contents/ CurrentJDK
Dans/Library/Java/Extension, j'avais un fichier tools.jar. Je crois que c'était du vieux jdk.
cd /Library/Java/Extensions
-rw-r--r-- 1 root admin 15286304 Jan 14 2015 tools.jar
Enlève ça
Sudo rm -rf /Library/Java/Extensions
le point 2 a fait l'affaire pour moi :)
Parfois, ce problème est lié à un Java_HOME
utilisé par maven.
install
et j'avais exactement le message subj. mvn -version
et j'ai réalisé qu'elle utilisait jdk7set Java_HOME=C:\Java\jdk8
(mon chemin jdk, donc le vôtre pourrait être différent)mvn clean install test
et cela a fonctionné juste bien enfinBonne chance!
Même problème ici, mais j’utilisais des configurations d’exécution dans Eclipse lorsque maven continuait à lancer cette erreur. Corrigé en réglant la bonne version du JDK ici:
J'ai eu le même problème:
> Java -version
Java version "1.8.0_111"
>javac -version
javac 1.7.0.6
J'ai vérifié le chemin d'accès dans les variables système et le jdk n'a pas été mis à jour vers jdk 8 .
En cent os, nous pouvons utiliser des alternatives pour changer de version.
alternatives --config javac
alternatives --config Java
Mais MAVEN utilise Java_HOME.
Et ce Java_HOME peut être possible à un lien.
Soit nous devons pointer manuellement Java_HOME vers le nouveau dossier jdk, OR supprimer/supprimer manuellement le lien et créer à nouveau un même lien à partir des réponses précédentes.
Des alternatives, nous pouvons obtenir le chemin de jdk