Abrufen von Gradle-Abhängigkeiten in IntelliJ IDEA mithilfe von Gradle Build

140

Beim Erstellen von Noten werden die Abhängigkeiten auch innerhalb von IntelliJ IDEA nicht in den Ordner "Externe Bibliotheken" verschoben, sodass diese Klassen nicht als Vorschläge im Editor angezeigt werden. Wenn ich sie manuell als Import hinzufüge, tritt ein Kompilierungsfehler auf.

Wie kann ich IntelliJ dazu bringen, die Abhängigkeiten automatisch in meine build.gradle- Datei aufzunehmen, zum Beispiel:

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

Andrew
quelle
2
Importieren Sie das Projekt als Gradle-Projekt. Stellen Sie sicher, dass die Gradle-Unterstützung aktiviert ist.
M. Deinum

Antworten:

191

Sie müssen das Projekt entweder als Gradle-Projekt aus Idea importieren. Wenn Sie eine Abhängigkeit hinzufügen, müssen Sie das Gradle-Fenster öffnen und eine Aktualisierung durchführen.

Alternativ können Sie die Projektdateien aus gradle wie folgt generieren:

build.gradle:

apply plugin: 'idea'

Und dann laufen:

$ gradle idea

Wenn Sie die Abhängigkeiten ändern, müssen Sie die obigen Schritte erneut ausführen.

tddmonkey
quelle
apply plugin: 'idea'sollte auf jeden Fall hinzugefügt werden.
Peter Niederwieser
@PeterNiederwieser - Wenn Sie einen Import von Idea durchführen, welchen Effekt hat dies?
tddmonkey
Es ermöglicht die Konfiguration verschiedener Aspekte des IntelliJ-Setups (z. B. welches JDK verwendet werden soll), die beim Import berücksichtigt werden sollten. Wenn Ihr Build keine solche Konfiguration hat, muss das Plugin möglicherweise nicht angewendet werden (ohne habe ich es nie versucht).
Peter Niederwieser
danke, schön zu wissen, ich benutze ausschließlich gradle, um die Projektdateien für mich zu generieren, also musste ich das nie tun
tddmonkey
Gleiches gilt beim Generieren von Projektdateien, außer dass das Anwenden des Plugins in diesem Fall definitiv nicht optional ist.
Peter Niederwieser
188

Öffnen Sie nach dem Hinzufügen von Abhängigkeiten die Registerkarte "Gradle" ('Ansicht' -> Werkzeugfenster-> Gradle) und klicken Sie auf "Aktualisieren".

Beispiel für das Hinzufügen (kompilieren Sie 'io.reactivex: rxjava: 1.1.0'):

Klicken Sie auf Aktualisieren

Wenn Idea die Abhängigkeit immer noch nicht auflösen kann, befindet sich die Abhängigkeit möglicherweise nicht im Repository von mavenCentral (), und Sie müssen ein Repository hinzufügen, in dem sich diese Abhängigkeit in Repositorys befindet {}

Andrey
quelle
13
Aber anscheinend funktioniert es nicht. Ich habe eine Abhängigkeit hinzugefügt und aktualisiert, aber wenn ich versuche, die Bibliothek entweder in XML oder Java-Quellcode zu importieren, kann IDEA sie nicht auflösen.
AuBee
3
Hat für mich gearbeitet. Zum Glück auch ohne das Idee Gradle Plugin zu verwenden.
gMale
2
@AuBee: Ich hatte das gleiche Problem. Es ging weg, als ich (nur einmal) mit Gradle über die Kommandozeile baute.
Thomas
@ Thomas Ja. CLI hat immer mehr Kontrolle
Andrey
@AuBee Wenn Idea die Abhängigkeit nicht auflösen kann, befindet sich die Abhängigkeit möglicherweise nicht im Repository von mavenCentral (), und Sie müssen auch das Repository in die Repositorys hinzufügen {}
Andrey,
20

Wenn Sie ein vorhandenes Gradle-Projekt (eines mit einem build.gradle) in IntelliJ IDEA importieren und den folgenden Bildschirm anzeigen, wählen Sie Aus externem Modell importieren -> Gradle .

Projekt aus externem Modell importieren

Wählen Sie optional Auto Import auf dem nächsten Bildschirm automatisch neue Abhängigkeiten zu importieren.

Qix - MONICA WURDE FEHLERHAFT
quelle
3
Eigentlich hat diese Antwort mein Problem gelöst und sollte das erste sein, was Sie vor der eigentlichen richtigen Antwort oben tun.
Quickinsights
3
Dies ist die einzige Lösung, die tatsächlich funktioniert und korrekt ist. Das Hinzufügen von etwas zu gradle.properties nur zur Veranschaulichung ist einfach falsch.
user219882
Ich konnte die Syntaxhervorhebung und die automatische Vervollständigung überhaupt nicht zum Laufen bringen, ohne diesen Schritt beim ursprünglichen Import auszuführen. Möglicherweise können Sie das Problem beheben, ohne es erneut zu importieren. Dies ist jedoch zumindest bei kleinen Projekten viel einfacher.
Ed Norris
@ user219882 - warum ist das Hinzufügen von etwas zu Ihrem Build "einfach falsch"?
tddmonkey
@tddmonkey, da die IDE, die ein Benutzer verwendet, für die Beschreibung des Builds irrelevant ist.
Qix - MONICA wurde
11

Für diejenigen, die den Fehler
" Abhängigkeiten können nicht aufgelöst werden" erhalten: Deaktivieren Sie "Offline-Modus"
('Ansicht' -> Tool Windows-> Gradle).

Gradle-Fenster

Jingxuan Zhou
quelle
5

Der obige Beitrag von Andrey gilt weiterhin für die neueste Version von Intellij ab dem 3. Quartal 2017. Verwenden Sie ihn also. Weil das Erstellen eines Projekts und das Erstellen eines externen Befehlszeilengradles es NICHT zu den externen Abhängigkeiten in Intellij hinzufügen ... verrückt, wie das klingt, ist es wahr. Der einzige Unterschied besteht nun darin, dass die Benutzeroberfläche anders aussieht als oben, aber immer noch dasselbe Symbol für die Aktualisierung verwendet wird. Ich gebe hier nur eine Antwort, weil ich keinen Schnappschuss der neuen Benutzeroberfläche einfügen kann ... Ich möchte per se keine Up-Votes. Andrey gab oben immer noch die richtige Antwort: Geben Sie hier die Bildbeschreibung ein

Beezer
quelle
1

In meinem Fall habe ich beim Aktualisieren der Registerkarte gradle ('Ansicht' -> Tool Windows-> Gradle) einen Fehler erhalten und auf "Aktualisieren" geklickt. Bei diesem Fehler wurde keine solche Eigenschaft gradleversion für die Klasse jetgradleplugin angezeigt.

Musste die neueste Intellij installieren, die mit Gradle 5+ kompatibel ist

Saurabh
quelle