En utilisant IntelliJ 12, j'ai un projet java et j'utilise maven avec un pom.xml. Mon projet utilise java8, mais il semble que le niveau de langue par défaut du projet ait été défini sur 6 lors de l'importation du projet.
Je peux changer le niveau de langue à 8.0 (F4 -> Modules -> Niveau de langue) cependant chaque fois que je modifie mon pom.xml, le niveau du projet est rétabli à "utiliser le niveau de langue du projet", et je dois modifier à nouveau ces paramètres et encore.
Dois-je ajouter quelque chose au pom.xml pour définir le niveau de langue par défaut sur 8,0?
java
maven
intellij-idea
pom.xml
Quentin
la source
la source
Réponses:
Selon le commentaire de Mark, voici comment procéder:
la source
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
Une version plus courte de la réponse de vikingsteve est:
la source
Je pense que cela a à voir avec un conflit conceptuel entre le plugin du compilateur Maven et l'idée d'IntelliJ. Apparemment, les nouvelles versions du plugin du compilateur ont un niveau par défaut de 1.5 (voir http://maven.apache.org/plugins/maven-compiler-plugin/ ). Donc, si le plugin du compilateur est utilisé dans un projet et que le niveau du compilateur n'est pas explicitement défini dans le pom.xml, chaque fois que le POM est retraité, le niveau revient à la valeur par défaut.
Il y a donc un conflit conceptuel ignoré par Intellij IDEA. L'EDI permet toujours de définir les paramètres du projet et du module, mais ne fournit aucun avertissement ni retour d'information indiquant que ce paramètre est contrôlé par pom.xml. Les solutions consisteraient soit à autoriser explicitement le remplacement du paramètre du plugin du compilateur POM (peut-être pas judicieux car ce qui se passe ensuite lorsque vous utilisez maven sur la ligne de commande), soit à désactiver les contrôles dans l'EDI lorsque ce paramètre du POM est en vigueur.
La solution à l'heure actuelle est de définir le niveau de compilation souhaité dans le plugin du compilateur dans le pom, la réimportation, plutôt que d'essayer de le définir dans les paramètres du module.
la source
Je mets à niveau un projet de JDK 8 vers JDK 10+. J'ai fait spécifier correctement les propriétés du compilateur comme suit:
Cependant, le projet Idea continuerait à réinitialiser le niveau de langue à 8.
Finalement, j'ai compris que le processus d'importation Maven d'Idea utilisait JDK 8 pour importer le projet, ce qui limitait le niveau de langue à <= 8.
Pour corriger, j'ai mis à jour la propriété 'JDK pour l'importateur' sous Paramètres -> Construction, exécution, déploiement -> Outils de construction -> Maven -> Importation pour utiliser JDK 11.
la source
Il y a deux façons de faire cela, ajoutez l'une ou l'autre dans votre fichier pom.xml:
Tout d'abord, ajouter des propriétés
deuxième - Ajouter un plugin
Faites-moi savoir si cela vous aide.
la source
Aucune des solutions n'a aidé dans mon cas. Je n'ai pas besoin de spécifier de version Java dans mon fichier
pom.xml
.J'avais besoin d'ouvrir le
<project-name>.iml
fichier et d'y changer la version JDK.Original:
Actualisé:
Cela n'a aucun sens. À aucun moment je n'ai spécifié une version JDK pour Java 1.5.
la source
J'ai beaucoup lutté avec ce problème, en raison de la création de microservices avec Dropwizard. Finalement, j'ai découvert que j'avais mes propriétés de construction dans le mauvais fichier pom (le service principal
pom.xml
).Ainsi, même si les autres packages ressemblent plus à des bibliothèques , je n'ai pas pu utiliser la syntaxe Java 8.
Lorsque j'ai refactoré le plugin de construction dans le
.pom.xml
fichier "global" ", tous les conteneurs enfants ont pu utiliser la nouvelle syntaxe.Peut aider quelqu'un ayant des problèmes avec des projets multi-conteneurs
la source
Pour moi, la solution de mise à jour du POM (plugins plus propriétés) vers la version requise du compilateur Java (1_7 dans mon cas) a fonctionné. Cependant, comme le fichier .iml pour chaque projet a été généré avec pom d'origine (avec la version de compilateur par défaut de 1_5 comme expliqué par quelqu'un ci-dessus) a une version JDK de 1_5, cela remplace toujours la version de pom.
J'ai supprimé le dossier .idea manuellement et importé le module dans IntelliJ avec une réimportation du pom mis à jour. Lorsque j'ai réimporté le module à partir du POM mis à jour, je pouvais voir que les fichiers iml avaient la version JDK mise à jour (1_7 dans mon cas).
la source
Il y avait une étape supplémentaire que je devais suivre, en plus de définir les propriétés de construction maven , d' ajouter le plugin maven-compiler-plugin et de modifier la version Java dans le fichier .iml . (chacun est déjà documenté dans les autres réponses). Vous devez également définir la version du compilateur dans les paramètres .
la source