Obtenir des dépendances Gradle dans IntelliJ IDEA à l'aide de la version Gradle

140

La construction de qualité, même depuis l'intérieur d'IntelliJ IDEA, ne place pas les dépendances dans le dossier "Bibliothèques externes", donc ces classes ne s'affichent pas comme des suggestions dans l'éditeur et lorsque je les ajoute manuellement en tant qu'importation, il y a une erreur de compilation.

Comment puis-je amener IntelliJ à incorporer automatiquement les dépendances dans mon fichier build.gradle , par exemple:

compile 'com.google.code.gson:gson:1.7.2

Andrew
la source
2
Importez le projet en tant que projet Gradle, assurez-vous que la prise en charge de Gradle est activée.
M. Deinum

Réponses:

192

Vous devez soit importer le projet en tant que projet Gradle depuis Idea. Lorsque vous ajoutez une dépendance, vous devez ouvrir la fenêtre Gradle et effectuer une actualisation.

Vous pouvez également générer les fichiers de projet à partir de gradle avec ceci:

build.gradle:

apply plugin: 'idea'

Et puis exécutez:

$ gradle idea

Si vous modifiez les dépendances, vous devrez réexécuter ce qui précède.

tddmonkey
la source
apply plugin: 'idea'devrait être ajouté dans tous les cas.
Peter Niederwieser
@PeterNiederwieser - si vous effectuez une importation depuis Idea, quel effet cela a-t-il?
tddmonkey
Il permet de configurer divers aspects de la configuration d'IntelliJ (par exemple quel JDK utiliser), qui devraient être honorés par l'importation. Si votre build n'a pas une telle configuration, il peut ne pas être nécessaire d'appliquer le plugin (je n'ai jamais essayé sans).
Peter Niederwieser
merci, bon à savoir, j'utilise exclusivement gradle pour générer les fichiers de projet pour moi, donc je n'ai jamais eu besoin de le faire
tddmonkey
Il en va de même lors de la génération de fichiers de projet, sauf que l'application du plugin n'est certainement pas facultative dans ce cas.
Peter Niederwieser
189

Après avoir ajouté des dépendances, ouvrez l'onglet "Gradle" ('View' -> Tool Windows-> Gradle) et cliquez sur "refresh"

exemple d'ajout (compilez 'io.reactivex: rxjava: 1.1.0'):

frapper rafraîchir

Si Idea ne peut toujours pas résoudre la dépendance, il est donc possible que la dépendance ne se trouve pas dans le référentiel mavenCentral () et que vous devez ajouter un référentiel où cette dépendance est située dans les référentiels {}

Andreï
la source
13
Mais il semble que cela ne fonctionne pas. J'ai ajouté une dépendance et actualisé, mais lorsque j'essaie d'importer la bibliothèque en XML ou en code source Java, IDEA ne peut pas la résoudre.
AuBee
3
A travaillé pour moi. Heureusement, même sans utiliser le plugin idea gradle.
gMale le
2
@AuBee: J'ai eu le même problème. Il a disparu lorsque j'ai construit (une seule fois) en utilisant Gradle à partir de la ligne de commande.
Thomas le
@Thomas Oui. CLI a toujours plus de contrôle
Andrey
@AuBee Si Idea ne peut pas résoudre la dépendance, il est donc possible que la dépendance ne soit pas dans le référentiel mavenCentral () et vous devez également ajouter un référentiel dans les référentiels {}
Andrey
20

Lors de l'importation d'un projet Gradle existant (un avec a build.gradle) dans IntelliJ IDEA, lorsqu'il est présenté avec l'écran suivant, sélectionnez Importer à partir d'un modèle externe -> Gradle .

Importer un projet à partir d'un modèle externe

Si vous le souhaitez, sélectionnez Importation automatique sur l'écran suivant pour importer automatiquement de nouvelles dépendances.

Qix - MONICA A ÉTÉ MISTRE
la source
3
En fait, cette réponse a résolu mon problème et devrait être la première chose à faire avant la bonne réponse ci-dessus.
quickinsights
3
C'est la seule solution qui fonctionne réellement et qui est correcte. Ajouter quelque chose dans gradle.properties juste pour une idée est tout simplement faux.
user219882
Je n'ai pas réussi à faire fonctionner la coloration syntaxique et la saisie semi-automatique sans effectuer cette étape sur l'importation d'origine. Vous pourrez peut-être le réparer sans réimporter, mais c'est beaucoup plus facile, du moins sur un petit projet.
Ed Norris
@ user219882 - pourquoi est-ce que l'ajout de quelque chose à votre build est "tout simplement faux"?
tddmonkey
@tddmonkey parce que l'EDI qu'un utilisateur choisit d'utiliser n'est pas pertinent pour décrire comment une construction a lieu.
Qix - MONICA a été égaré
11

Pour ceux qui obtiennent l'erreur "Impossible de résoudre les dépendances":
désactivez le "Mode hors ligne"
('Affichage' -> Outil Windows-> Gradle)

fenêtre gradle

Jingxuan Zhou
la source
5

Le message ci-dessus d'Andrey est toujours valable pour la dernière version d'Intellij à partir du 3ème trimestre 2017. Alors utilisez-le. Parce que, le projet de construction et la construction de gradle de ligne de commande externe ne l'ajoutent PAS aux dépendances externes dans Intellij ... fou comme cela semble vrai. La seule différence maintenant est que l'interface utilisateur est différente de celle ci-dessus, mais que la même icône de mise à jour est toujours utilisée. Je mets seulement une réponse ici, car je ne peux pas coller un instantané de la nouvelle interface utilisateur ... Je ne veux pas de votes en soi. Andrey a toujours donné la bonne réponse ci-dessus: entrez la description de l'image ici

Beezer
la source
1

Dans mon cas, j'obtenais une erreur en actualisant l'onglet gradle ('View' -> Tool Windows-> Gradle) et en appuyant sur "refresh" et en obtenant cette erreur pas de propriété gradleversion pour la classe jetgradleplugin.

J'ai dû installer le dernier intellij compatible avec gradle 5+

Saurabh
la source