Получение зависимостей Gradle в IntelliJ IDEA с помощью сборки Gradle


145

Сборка оценок даже изнутри IntelliJ IDEA не помещает зависимости в папку «Внешние библиотеки», поэтому эти классы не отображаются как предложения в редакторе, и когда я вручную добавляю их как импорт, возникает ошибка компиляции.

Как я могу заставить IntelliJ автоматически включать зависимости в мой файл build.gradle , например:

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


2
Импортируйте проект как проект Gradle, убедитесь, что у вас включена поддержка Gradle.
M. Deinum

Ответы:


195

Вам либо нужно импортировать проект как проект Gradle из Idea. Когда вы добавляете зависимость, вам нужно открыть окно Gradle и выполнить обновление.

В качестве альтернативы сгенерируйте файлы проекта из gradle с помощью этого:

build.gradle:

apply plugin: 'idea'

А затем запустите:

$ gradle idea

Если вы измените зависимости, вам нужно будет снова запустить вышеуказанное.


apply plugin: 'idea'надо добавить в любом случае.
Питер Нидервизер

@PeterNiederwieser - если вы выполняете импорт из Idea, какой эффект это дает?
tddmonkey

Он позволяет настраивать различные аспекты настройки IntelliJ (например, какой JDK использовать), которые должны учитываться при импорте. Если ваша сборка не имеет такой конфигурации, возможно, нет необходимости применять плагин (я никогда не пробовал без него).
Peter Niederwieser

спасибо, приятно знать, я использую только gradle для генерации файлов проекта для меня, поэтому мне никогда не
приходилось

То же самое и при создании файлов проекта, за исключением того, что в этом случае применение плагина определенно не является обязательным.
Peter Niederwieser

197

После добавления зависимостей откройте вкладку «Gradle» ('View' -> Tool Windows-> Gradle) и нажмите «обновить».

пример добавления (скомпилировать 'io.reactivex: rxjava: 1.1.0'):

нажмите обновить

Если Idea по-прежнему не может разрешить зависимость, возможно, зависимость отсутствует в репозитории mavenCentral (), и вам нужно добавить репозиторий, в котором эта зависимость находится в репозиториях {}


13
Но вроде не работает. Я добавил зависимость и обновился, но когда я пытаюсь импортировать библиотеку либо в XML, либо в исходном коде Java, IDEA не может решить эту проблему.
AuBee

3
Работал у меня. К счастью, даже без использования плагина idea gradle.
gMale

2
@AuBee: У меня была такая же проблема. Он исчез, когда я построил (всего один раз) с помощью Gradle из командной строки.
Thomas

@ Томас Да. CLI всегда имеет больше контроля
Эндрю

@AuBee Если Idea не может разрешить зависимость, значит, возможно, что зависимость отсутствует в репозитории mavenCentral (), и вам также нужно добавить репозиторий в репозитории {}
Эндрю

21

При импорте существующего проекта Gradle (один с a build.gradle) в IntelliJ IDEA, когда представлен следующий экран, выберите Импорт из внешней модели -> Gradle .

Импортировать проект из внешней модели

При желании выберите « Автоимпорт» на следующем экране, чтобы автоматически импортировать новые зависимости.


3
Собственно, этот ответ решил мою проблему и должен быть первым, что вы сделаете до фактического правильного ответа выше.
quickinsights

3
Это единственное решение, которое действительно работает и является правильным. Добавлять что-то в gradle.properties просто для идеи - это просто неправильно.
user219882

Мне вообще не удалось заставить работать подсветку синтаксиса и автозаполнение без выполнения этого шага в исходном импорте. Возможно, вы сможете исправить это без повторного импорта, но это намного проще, по крайней мере, в небольшом проекте.
Эд Норрис

@ user219882 - почему добавление чего-то в вашу сборку "просто неправильно"?
tddmonkey

@tddmonkey, потому что IDE, которую выбирает использовать пользователь, не имеет отношения к описанию того, как происходит сборка.
Qix - МОНИКА БЫЛА ОФОРМЛЕНА

13

Для тех, у кого появляется ошибка «Невозможно разрешить зависимости»:
выключите «Автономный режим»
(«Просмотр» -> Инструмент Windows-> Gradle).

окно Gradle


8

Приведенный выше пост Андрея по- прежнему актуален для последней версии Intellij по состоянию на 3 квартал 2017 года. Так что используйте его. Потому что проект сборки и сборка gradle из внешней командной строки НЕ добавляют его во внешние зависимости в Intellij ... безумно, как бы это ни звучало, это правда. Единственная разница теперь заключается в том, что пользовательский интерфейс выглядит иначе, чем указано выше, но для обновления используется тот же значок. Я просто помещаю здесь ответ, потому что я не могу вставить снимок нового пользовательского интерфейса ... Я не хочу никаких голосов как таковых. Андрей все же дал правильный ответ выше: введите описание изображения здесь


1

В моем случае я получал ошибку при обновлении вкладки Gradle ('View' -> Tool Windows-> Gradle), нажимал «обновить» и получал эту ошибку без такой Gradleversion свойства для класса jetgradleplugin.

Пришлось установить последнюю версию intellij, совместимую с gradle 5+


0

Пробовал все в этой теме, и в IntelliJ 2020.2 у меня ничего не работало. Этот ответ помог , но мне пришлось установить правильный путь к JDK и после этого выбрать его в настройках Gradle (как показано на рисунках ниже):

  1. Установка правильного пути для Java SDK (в File-> Project Structure):

введите описание изображения здесь

  1. В окне Gradle щелкните "Настройки Gradle ..."

введите описание изображения здесь

  1. Выберите правильный SDK из (1) здесь:

введите описание изображения здесь

После этого опция «Reload All Gradle Projects» загрузила все зависимости, как и ожидалось.

Ура.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.