Отримання залежностей Gradle в IntelliJ IDEA за допомогою Gradle build


140

Збірка рівня, навіть зсередини IntelliJ IDEA, не ставить залежності в папку "Зовнішні бібліотеки", тому ці класи не відображаються як пропозиції в редакторі, і коли я вручну додаю їх як імпорт, виникає помилка компіляції.

Як я можу змусити IntelliJ автоматично включати залежності, наприклад, у мій файл build.gradle :

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


2
Імпортуйте проект як проект Gradle, переконайтеся, що у вас включена підтримка gradle.
М. Дейнум

Відповіді:


192

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

Альтернативно генеруйте файли проекту з gradle за допомогою цього:

build.gradle:

apply plugin: 'idea'

А потім запустіть:

$ gradle idea

Якщо ви модифікуєте залежності, вам потрібно буде повторити вищезгадане.


apply plugin: 'idea'слід додавати в будь-якому випадку.
Peter Niederwieser

@PeterNiederwieser - якщо ви робите імпорт з Idea, який ефект це має?
tddmonkey

Це дозволяє налаштувати різні аспекти установки IntelliJ (наприклад, який JDK використовувати), який повинен бути шанований імпортом. Якщо у вашій збірці немає такої конфігурації, можливо, не потрібно буде застосовувати плагін (я ніколи не пробував).
Peter Niederwieser

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

Те саме стосується генерації файлів проектів, за винятком того, що застосування плагіна, безумовно, в цьому випадку не є обов'язковим.
Peter Niederwieser

189

Після додавання залежностей відкрийте вкладку "Gradle" ("Перегляд" -> Інструмент Windows-> Gradle) і натисніть "оновити"

приклад додавання (компілювати 'io.reactivex: rxjava: 1.1.0'):

вдарити оновити

Якщо Idea все ще не може вирішити залежність, отже, можливо, залежність не знаходиться у сховищі mavenCentral (), і вам потрібно додати сховище, де ця залежність знаходиться у сховищах {}


13
Але, схоже, це не працює. Я додав залежність і оновив, але коли я намагаюся імпортувати бібліотеку або у вихідний код XML чи Java, IDEA не може її вирішити.
AuBee

3
Працювали для мене. На щастя, навіть без використання плагіну ідеї gradle.
gMale

2
@AuBee: У мене була така ж проблема. Він пішов, коли я побудував (лише один раз) за допомогою Gradle з командного рядка.
Томас

@Thomas Так. У CLI завжди більше контролю
Андрій

@AuBee Якщо Ідея не може вирішити залежність, отже, можливо, залежність відсутня у сховищі mavenCentral (), і вам також потрібно додати сховище до сховищ {}
Андрій

20

Під час імпорту існуючого проекту Gradle (одного з a build.gradle) в IntelliJ IDEA, коли він представлений на наступному екрані, виберіть Імпорт із зовнішньої моделі -> Gradle .

Імпорт проекту з зовнішньої моделі

За бажанням виберіть Автоматичний імпорт на наступному екрані, щоб автоматично імпортувати нові залежності.


3
Насправді ця відповідь вирішила мою проблему, і це має бути першим, що ви робите до фактично правильної відповіді вище.
швидкі огляди

3
Це єдине рішення, яке насправді працює і є правильним. Додавання чогось у gradle.properties тільки для ідеї - це явно неправильно.
користувач219882

Мені не вдалося отримати підсвічування синтаксису і взагалі автоматичне завершення роботи, не виконавши цей крок на оригінальному імпорті. Ви можете виправити це без повторного імпорту, але це набагато простіше, принаймні, для невеликого проекту.
Ед Норріс

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

@tddmonkey, оскільки IDE, який користувач вирішує використовувати, не має значення для опису того, як відбувається збірка.
Qix - МОНІКА ПОМИЛИЛА

11

Для тих, хто отримує помилку "Не вдається вирішити залежності":
вимкніть "Офлайн режим"
("Перегляд" -> Інструмент Windows-> Gradle)

gradle вікно


5

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


1

У моєму випадку я отримував помилку під час оновлення вкладки gradle ("Перегляд" -> Інструмент Windows-> Gradle) і натискав "refresh", і в цій помилці немає такої властивості gradleversion для класу jetgradleplugin.

Довелося встановити найновіший intellij, сумісний з gradle 5+

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.