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


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.


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 {}


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.


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


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


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.