Pobieranie zależności Gradle w IntelliJ IDEA przy użyciu kompilacji Gradle

140

Grade build, nawet z wnętrza IntelliJ IDEA, nie umieszcza zależności w folderze „External Libraries”, więc te klasy nie pojawiają się jako sugestie w edytorze, a kiedy ręcznie dodam je jako import, pojawia się błąd kompilacji.

Jak mogę sprawić, aby IntelliJ automatycznie włączał zależności w moim pliku build.gradle , na przykład:

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

Andrzej
źródło
2
Zaimportuj projekt jako projekt gradle, upewnij się, że masz włączoną obsługę gradle.
M. Deinum,

Odpowiedzi:

192

Musisz zaimportować projekt jako projekt Gradle z poziomu Idea. Po dodaniu zależności należy otworzyć okno Gradle i wykonać odświeżenie.

Alternatywnie wygeneruj pliki projektu z gradle za pomocą tego:

build.gradle:

apply plugin: 'idea'

A potem biegnij:

$ gradle idea

Jeśli zmodyfikujesz zależności, będziesz musiał ponownie uruchomić powyższe.

tddmonkey
źródło
apply plugin: 'idea'należy dodać w każdym przypadku.
Peter Niederwieser
@PeterNiederwieser - jeśli importujesz dane z Idea, jaki ma to efekt?
tddmonkey
Pozwala na skonfigurowanie różnych aspektów instalacji IntelliJ (np. Jakiego JDK użyć), które powinny być honorowane przez import. Jeśli twoja kompilacja nie ma takiej konfiguracji, może nie być konieczne stosowanie wtyczki (nigdy nie próbowałem bez).
Peter Niederwieser
dzięki, dobrze wiedzieć, używam wyłącznie gradle do generowania plików projektu dla mnie, więc nigdy nie musiałem tego robić
tddmonkey
To samo dotyczy generowania plików projektu, z tym wyjątkiem, że zastosowanie wtyczki zdecydowanie nie jest w tym przypadku opcjonalne.
Peter Niederwieser
189

Po dodaniu zależności otwórz zakładkę „Gradle” („Widok” -> Okna narzędziowe-> Gradle) i naciśnij „Odśwież”

przykład dodawania (kompilacja 'io.reactivex: rxjava: 1.1.0'):

hit odśwież

Jeśli Idea nadal nie może rozwiązać zależności, prawdopodobnie zależność nie znajduje się w repozytorium mavenCentral () i musisz dodać repozytorium, w którym ta zależność znajduje się w repozytoriach {}

Andrey
źródło
13
Ale wydaje się, że to nie działa. Dodałem zależność i odświeżyłem, ale kiedy próbuję zaimportować bibliotekę w formacie XML lub Java Source Code, IDEA nie może tego rozwiązać.
AuBee,
3
Pracował dla mnie. Na szczęście, nawet bez korzystania z wtyczki idea gradle.
gMale,
2
@AuBee: Miałem ten sam problem. Zniknęło, gdy zbudowałem (tylko raz) za pomocą Gradle z wiersza poleceń.
Thomas
@Thomas Yes. CLI zawsze ma większą kontrolę
Andrey
@AuBee Jeśli Idea nie może rozwiązać zależności, prawdopodobnie zależność nie znajduje się w repozytorium mavenCentral (), a także musisz dodać repozytorium do repozytoriów {}
Andrey
20

Podczas importowania istniejącego projektu Gradle (jednego z a build.gradle) do IntelliJ IDEA, kiedy pojawi się następujący ekran, wybierz Importuj z modelu zewnętrznego -> Gradle .

Importuj projekt z modelu zewnętrznego

Opcjonalnie wybierz opcję Automatyczny import na następnym ekranie, aby automatycznie zaimportować nowe zależności.

Qix - MONICA ZOSTAŁA POMYŚLNA
źródło
3
Właściwie ta odpowiedź rozwiązała mój problem i powinna być pierwszą rzeczą, którą zrobisz przed właściwą poprawną odpowiedzią powyżej.
quickinsights
3
To jedyne rozwiązanie, które faktycznie działa i jest poprawne. Dodanie czegoś do gradle.properties tylko dla pomysłu jest po prostu błędne.
user219882
Nie udało mi się uzyskać podświetlania składni i automatycznego uzupełniania do działania bez wykonania tego kroku na oryginalnym imporcie. Możesz to naprawić bez ponownego importowania, ale jest to znacznie łatwiejsze, przynajmniej w przypadku małego projektu.
Ed Norris,
@ user219882 - dlaczego dodanie czegoś do kompilacji jest „po prostu niewłaściwe”?
tddmonkey
@tddmonkey, ponieważ IDE, które wybiera użytkownik, nie ma znaczenia dla opisu sposobu budowania.
Qix - MONICA ZOSTAŁA POMYŚLNA
11

Dla tych, którzy otrzymują błąd „Nie można rozwiązać zależności”:
wyłącz „Tryb offline”
(„Widok” -> Narzędzia Windows-> Gradle)

okno gradle

Jingxuan Zhou
źródło
5

Powyższy post Andreya jest nadal aktualny dla najnowszej wersji Intellij z trzeciego kwartału 2017 roku. Więc używaj go. Bo, build project i zewnętrzny gradle build z linii poleceń NIE dodaje go do zewnętrznych zależności w Intellij ... szaleństwo, jak to brzmi, to prawda. Jedyną różnicą jest teraz to, że interfejs użytkownika wygląda inaczej niż powyżej, ale nadal używana jest ta sama ikona do aktualizacji. Podaję tutaj tylko odpowiedź, ponieważ nie mogę wkleić migawki nowego interfejsu użytkownika ... Nie chcę żadnych głosów w górę jako takich. Andrey nadal udzielił poprawnej odpowiedzi powyżej: wprowadź opis obrazu tutaj

Beezer
źródło
1

W moim przypadku podczas odświeżania zakładki Gradle („Widok” -> Okna narzędzi-> Gradle) pojawiał się błąd i kliknąłem „odśwież” i otrzymałem ten błąd. Brak takiej właściwości gradleversion dla klasy jetgradleplugin.

Musiałem zainstalować najnowszy Intellij kompatybilny z Gradle 5+

Saurabh
źródło