web-dev-qa-db-fra.com

IntelliJ IDEA et Gradle - Ne peut pas être appliqué à '(groovy.lang.Closure)'

J'ai un fichier Gradle qui, chaque fois que je le charge, l'ouvre dans IntelliJ IDEA 14.1.5, affiche IDE des erreurs pour l'ensemble du fichier. Toutes les erreurs semblent être soit:

Erreurs Java.lang.String

Java.lang.String errors

ou

erreurs groovy.lang.Closure

groovy.lang.Closure errors

J'ai essayé d'effacer le contenu du fichier et d'écrire uniquement la ligne du haut:

group 'com.me.blah'

mais même cela entraîne une erreur.

Pour des raisons de contexte, il s'agit d'un module individuel dans un projet SpringBoot plus grand. Ce module est un ensemble de fichiers statiques simples (avec Gradle pour la compilation CSS, l'analyse statique, etc.), tandis que les autres sont Java) et sont pas ayant des problèmes de Gradle.

Est-ce que quelqu'un peut penser pourquoi IntelliJ aurait du mal à comprendre ce fichier Gradle?

56
Seb Charrot

Pour ceux qui recherchent un correctif similaire, cela se résume au type de module. Mon module a été défini dans mon fichier .iml comme

type="WEB_MODULE"

J'ai créé un nouveau module Gradle et collé dans le même contenu, supprimé l'original, renommé le nouveau module pour qu'il porte le même nom que l'ancien et tout a bien fonctionné. Lorsque j'ai différé les résultats, le seul changement était que le fichier .iml disait maintenant:

type="Java_MODULE"

Donc, il y a la réponse, apparemment. Changez votre module de "web" en "Java".

5
Seb Charrot

J'ai remarqué cela souvent. Lors de la création d'un nouveau projet et de l'utilisation du modèle 'Gradle', IntelliJ semble avoir tout faux. Après avoir créé un nouveau projet, supprimez donc les fichiers .idea et .iml, puis rouvrez-le directement à partir du fichier Gradle. IntelliJ semble mieux comprendre ce qui se passe dans ce cas.

35
Jon Nichols

Pour la première partie de la question: group est une propriété, il doit donc y avoir une affectation, pas un appel de fonction. Le bon code est:

group = 'com.me.blah'
18
Beholder

J'ai trouvé cette suggestion dans le IDEA bug tracker ( IDEA-14268 ):

Solution de contournement:
On peut ajouter un commentaire tel que
//noinspection GroovyAssignabilityCheck
pour supprimer l’avertissement, mais cela ne devrait pas être nécessaire, car ils sont utilisés quotidiennement par Gradle.

Ce problème a été récemment mis à jour et est corrigé, prêt à être publié avec la version 2016.2.

14
FGreg

Essayez le fichier | Invalider les caches et redémarrer. Cela a fonctionné pour moi après que je me suis plié à la syntaxe quelque part dans le fichier.

6

Pour moi, après avoir essayé toutes ces réponses sans résultat, en changeant le Java SDK du projet a fait l'affaire), j'étais sur la version 1.8 et l'ai changé en la plus récente, mais reste un langage de niveau projet de 8.

J'espère que cela t'aides!

3
Ariel Mirra

Ce que j’ai trouvé, c’est que cet avertissement provient de l’inspection Groovy de l’Intelliji. Donc, si votre projet n’est pas vraiment groovy, vous pouvez désactiver cette inspection en sélectionnant Fichier -> Paramètres -> Editeur -> Inspections -> Désactiver Groovy. Encore une fois, juste une solution de contournement.

2
Neal Sha

M'est arrivé récemment sur windows. J'ai essayé tout ce qui précède, mais cela n'a pas fonctionné.

Ce que j'ai fait

1 - J'avais déjà défini la variable d'environnement Java_HOME. Donc IDEA l'a choisi comme projet SDK et ces avertissements sont apparus.

2 - J'ai donc supprimé le Java_HOME par défaut du projet SDK et ajouté manuellement le chemin jdk. Redémarré et tous les avertissements avaient disparu.

Cela aidera peut-être quelqu'un. Merci.

2
Rajkishan Swami