В этом руководстве, в продолжение темы просмотра зависимостей, мы рассмотрим управление зависимостями в IntelliJ IDEA.

Мы рассмотрим различные способы добавления зависимостей в ваш проект, а также способы добавления, обновления и удаления зависимостей с помощью Package Search.

Добавление зависимостей

Существует несколько способов добавления новых зависимостей в ваш проект.

Из файла сборки с помощью копирования/вставки

Вы наверняка копировали зависимость из репозитория Maven (или другого веб-сайта) и вставляли ее в свой файл сборки.

Например, мы можем скопировать формат Gradle для этой зависимости и вставить его в наш файл build.gradle.

Или, если мы используем Maven, мы можем скопировать формат Maven xml в наш pom.xml.

Знаете ли вы, что если вы скопируете и вставите зависимость Maven XML в файл build.gradle, IntelliJ IDEA автоматически преобразует ее в правильный формат для Gradle?

Из файла сборки с помощью автозавершения кода

Мы также можем добавить зависимости в наш файл сборки, используя автозавершение кода. Например, давайте добавим новую зависимость в наш файл pom.xml.

Мы видим, что IntelliJ IDEA автоматически дополняет xml зависимости, и мы можем искать нужную зависимость, в данном примере AssertJ.

При необходимости также будет добавлен номер версии. Поскольку это тестовая зависимость, нам нужно добавить тестовую область видимости, по-прежнему используя автозавершение кода.

Автозавершение кода работает и в Gradle, как вы можете видеть ниже.

Из файла сборки с помощью генерации кода

Мы также можем использовать генерацию кода из файла сборки для добавления зависимостей.

В файле сборки pom.xml в проекте Maven вызовите Package Search (поиск пакетов) с помощью ⌘N (в macOS) или Alt+Insert (в Windows и Linux) и в открывшемся меню выберите Add dependency.

Откроется окно инструмента Dependencies (Зависимости).

Обратите внимание: если мы используем Gradle, мы можем сделать то же самое в нашем файле build.gradle.

Из окна инструмента Dependencies

В качестве альтернативы мы можем напрямую открыть окно инструмента Dependencies.

Ярлыка для открытия окна инструмента Dependencies не существует, поэтому мы можем использовать Recent Files⌘E (на Mac) или Ctrl+E (в Windows/Linux) и ввести «dependencies», чтобы открыть окно инструмента Dependencies.

В качестве альтернативы мы можем открыть его, нажав Quick Launch в левом нижнем углу и выбрав Dependencies.

В окне инструмента Dependencies мы можем искать зависимость. Например, давайте поищем AssertJ.

Обратите внимание, что мы можем выбрать область видимости для этой зависимости.

Названия областей видимости зависят от инструмента сборки, с которым вы работаете.

Поскольку это тестовая зависимость, и мы используем Gradle в этом проекте, мы можем установить область видимости на testImplementation.

Мы также можем выбрать версию, которую хотим использовать.

Мы можем сделать то же самое в Maven.

Обратите внимание, что названия областей видимости для Maven отличаются от Gradle.

В Maven мы можем установить область видимости для тестовой зависимости как test.

Когда мы нажимаем Add, мы видим, что зависимость добавлена в файл сборки.

Если номер версии показан красным цветом, это означает, что IntelliJ IDEA еще не загружала эту библиотеку.

Щелкните Load Maven Changes, чтобы IntelliJ IDEA обновила свои зависимости на основе изменений в файле pom.xml или build.gradle.

Вернитесь в окно инструмента Dependencies и очистите поле поиска, нажав на x с правой стороны. Вы увидите, что зависимости проекта обновлены вашей новой зависимостью.

Далее ищем jackson-databind. Мы видим, что доступно несколько версий.

Поскольку мы выбрали Only stable, в списке отображаются только стабильные версии.

Если мы снимем флажок с этой опции, мы увидим, что в список версий также входят кандидаты на выпуск.

Для производственного кода мы, вероятно, хотим использовать стабильные версии, поэтому давайте снова установим флажок Only stable.

Если эта опция включена, IntelliJ IDEA исключит все зависимости, не имеющие стабильных версий, и скроет их в списке.

Теперь мы можем выбрать последнюю стабильную версию и добавить ее в наш проект. Давайте также снова загрузим Maven Changes.

Наконец, давайте также добавим новую зависимость для модуля Kotlin.

Давайте переключимся на модуль Kotlin и откроем pom.xml для этого модуля.

Откройте окно Dependencies Tool и найдите Ktor.

Обратите внимание, что некоторые зависимости помечены как Multiplatform (многоплатформенные).

Если мы хотим видеть только многоплатформенные зависимости Kotlin, мы можем установить флажок Kotlin multiplatform, как показано ниже.

Когда мы нажимаем Add справа от зависимости Ktor, мы видим, что Ktor добавлен в список зависимостей и в pom.xml для модуля Kotlin.

Обновление зависимостей

Нам также необходимо будет поддерживать наши зависимости в актуальном состоянии.

Чтобы показать вам, как IntelliJ IDEA может в этом помочь, мы используем в качестве примера этот крайне устаревший проект.

В pom.xml ниже мы видим, что несколько зависимостей отмечены волнистыми линиями под ними.

IntelliJ IDEA покажет предложение по обновлению, когда мы наведем указатель мыши на зависимость, и мы можем щелкнуть по предложению для обновления зависимостей.

В качестве альтернативы мы можем использовать Context Actions (контекстные действия) ⌥⏎ (в macOS) или Alt+Enter (в Windows и Linux) для обновления этих зависимостей.

Мы также можем обновить наши зависимости, используя окно Dependencies tool.

Окно Dependencies tool подскажет нам, есть ли более новая версия зависимости, как мы видим здесь.

Мы можем выбрать версию для обновления, нажав на номер версии в списке.

Обратите внимание, что нам необязательно использовать последнюю версию.

Мы также можем автоматически обновить зависимость до последней версии, нажав Upgrade для этой конкретной зависимости.

Или мы можем даже обновить все наши зависимости сразу, нажав на ссылку Upgrade all.

Удаление зависимостей

Наконец, мы можем удалить зависимости, которые нам больше не нужны. В окне Dependencies tool давайте удалим jackson-databind из модуля Java.

Выберем зависимость, которую хотим удалить (jackson-databind), и на панели сведений о зависимости справа нажимаем кнопку More (три точки) и выбираем Remove.

Мы увидим, что зависимость удалена из pom.xml и списка зависимостей. Чтобы удалить зависимость из всего проекта, выберите All Modules слева.

Резюме и ярлыки

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

Используемые сочетания клавиш IntelliJ IDEA

Вот горячие клавиши IntelliJ IDEA, которые мы использовали.

Имя

Горячие клавиши macOS

Горячие клавиши Windows/Linux

Открыть/закрыть окно инструментов проекта

⌘1

Alt+1

Недавние файлы

⌘E

Control+Е

Вызвать поиск пакетов

⌘N

Alt+Insert

Контекстные действия

⌥⏎

Alt+Ввод

Ссылки по теме

Комментарии (6)


  1. ris58h
    16.01.2023 15:30
    +4

    Давненько не брал я в руки шашек Maven. Зато по картинкам сразу вспомнил зачем писал Laconic POM - сократить эту XML портянку.


    1. SimSonic
      16.01.2023 18:24

      Да не так уж они и страшны. Строчки в файлах вполне себе бесплатны :)


    1. vaa25
      17.01.2023 19:32
      +1

      комментарий, придающий смысл статье. +1 плагин в коллекцию)


  1. LeshaRB
    16.01.2023 22:42

    https://youtube.com/watch?v=nqb9yAecM9Y


  1. aleksandy
    17.01.2023 07:06
    +1

    TL.DR Используйте инструмент сборки, умеющий управлять зависимостями, и умейте им пользоваться. И будет абсолютно всё равно какой IDE/редактор кода используется (идея/эклипс/нетбинс/блокнот).

    P.S. И не жалко времени на перевод этой воды?


  1. odisseylm
    17.01.2023 17:48

    Странная статья... (Реклама инструмента, которым почти никто не пользуется) Но если звезды зажигают, наверное кому-то это нужно.

    Автора вообще не смутило, что его зависимость с душком (прямо на 1-м скриншоте огненными красными письменнами). И как быстренько решить эту проблему с помощью Идеи не написано ((