Lors de l'exécution d'un test JUnit, en utilisant IntelliJ IDEA, je reçois
Comment puis-je corriger cela?
Maven build fonctionne bien. (C'est pourquoi je crois ceci dans le problème de configuration IDEA)
Vous avez probablement des options de compilateur incorrectes importées de Maven ici:
Vérifiez également les paramètres de version du projet et du bytecode du module (target) décrits sur la capture d'écran.
Autres endroits où le niveau de langue source est configuré:
Maven niveau de langue par défaut est 1.5 (5.0), vous verrez cette version comme le niveau de langue du module sur la capture d'écran ci-dessus.
Cela peut être changé en utilisant maven-compiler-plugin configuration inside pom.xml
:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
ou
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
IntelliJ IDEA respectera ce paramètre après avoir Réimporté le projet Maven dans la fenêtre Maven Projects tool:
Similaire à celui présenté ci-dessous pour IntelliJ 13 & 14, mais avec un niveau supplémentaire dans le panneau Paramètres/Préférences: Paramètres> Construire, Exécution, Déploiement> Compilateur> Compilateur Java.
Dans IntelliJ 13 et 14, vérifiez l'interface utilisateur Paramètres> Compilateur> Compilateur Java pour vous assurer que vous ne ciblez pas une version de bytecode différente dans votre module.
Dans IntelliJ IDEA 14.1 la "version du bytecode cible" est à un endroit différent.
Le changement suivant a fonctionné pour moi:
Fichier> Paramètres ...> Générer, Exécuter, Déployer> Compilateur> Compilateur Java : change Version du code intermédiaire cible de 1.5 à 1.8
Avez-vous examiné votre configuration de construction? Cela devrait ressembler à cela si vous utilisez Maven 3 et JDK 7
<build>
<finalName>SpringApp</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
...
</plugins>
...
</build>
Je me suis heurté à cela et le correctif était d'aller dans Paramètres du projet> Modules> cliquez sur l'onglet du module en question> Dépendances. J'ai remarqué que le module SDK était toujours défini sur 1.6, je l'ai changé en 1.7 et cela a fonctionné.
J'ai trouvé les options requises ("version de code source cible") dans settings> compilateur> compilateur Java dans mon cas (idée de base 12.1.3)
Modifiez le fichier de paramétrage du compilateur du projet dans le chemin suivant et remplacez la "cible" par 1.7
/project/.idea/compiler.xml
<bytecodeTargetLevel>
<module name="project-name" target="1.7" />
</bytecodeTargetLevel>
Je l'ai résolu en mettant le champ vide:
Paramètres> Compilateur> Compilateur Java> Version du bytecode du projet
Than IntelliJ utilise la version par défaut du JDK.
J'ai touché ceci après une mise à niveau mineure d'IntelliJ IDEA 14 vers la v14.1 . Pour moi, modifier une édition de pom top/parent m'a aidé, puis cliquez sur réimporter Maven (si ce n'est pas automatique) .
Mais il suffit peut-être de cliquer avec le bouton droit de la souris sur module (s)/module agrégé/parent et sur Maven -> Réimporter.
D'un moment à l'autre, j'ai aussi eu cette erreur sans raison claire. J'ai modifié toutes sortes de paramètres sur le compilateur/module, etc. Mais au final, j'ai simplement recréé le projet IntelliJ en réimportant le projet Maven et le problème a été résolu. Je pense que c'est un bug.
IntelliJ 12 129.961
J'ai résolu la méthode ci-dessous
Fichier >> Structure du projet >> Projet >> Niveau de langue du projet -> mettre la bonne version (ex: 1.5)
vérifiez . idée/misc.xml parfois vous devez modifier l'attribut languageLevel = "JDK_1_X" manuellement
S'il s'agit d'un projet Gradle, dans votre fichier build.gradle, recherchez les paramètres suivants:
sourceCompatibility = "xx"
targetCompatibility = "xx"
Pour tous les sous-projets, dans votre fichier build.gradle racine, vous pouvez indiquer:
subprojects { project ->
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
}
Bien que vous puissiez définir manuellement les niveaux de langue dans Idea> Paramètres, s'il s'agit d'un projet Gradle, Idea synchronise automatiquement les fichiers .iml du module à partir des paramètres Gradle (testé avec Idea 15+). Ainsi, toutes vos modifications manuelles sont annulées lorsque Gradle est actualisé.
Basé sur Documentation Gradle , s'ils ne sont pas définis, la configuration actuelle de la machine virtuelle Java est utilisée.
J'ai trouvé un autre moyen de rencontrer cette erreur. Vous pouvez l'obtenir si vous avez réorganisé la structure de votre répertoire et qu'un de vos poms pointe vers l'ancien parent qui ne configure plus javac (car cette configuration a été déplacée au niveau intermédiaire). Si cela se produit, le niveau supérieur par défaut est de 1,5 et le pom de mauvaise qualité en hérite.
Une autre chose à vérifier lorsque vous voyez cette erreur est que votre structure de pom correspond bien à votre structure de répertoire.
Si la compilation de Maven fonctionne correctement, essayez de synchroniser la structure des projets Maven et IntelliJ IDEA.
Dans la fenêtre de l’outil Maven , cliquez sur le bouton Actualiser . En appuyant sur ce bouton, IntelliJ IDEA analyse la structure du projet dans la fenêtre de l’outil Maven.
Notez que cela ne vous aidera peut-être pas si vous utilisez la génération EAP, car la fonctionnalité de synchronisation Maven peut parfois être endommagée.
Assurez-vous que la bonne dépendance est sélectionnée . Fichier> Structure du projet
Sélectionnez votre projet et accédez à l'onglet Dépendances. Sélectionnez la bonne dépendance dans la liste déroulante ou créez-en une nouvelle.
Si toutes les solutions précédentes n'ont pas fonctionné pour vous (ce qui était mon cas), vous pouvez supprimer les fichiers de configuration intellij:
Intellij en régénérera de nouvelles plus tard . Cependant, ATTENTION, ceci supprimera également toute la configuration intellij faite sur le projet (c'est-à-dire: configuration du mode debug, ...)