Как обновить gradle в intellij idea
Перейти к содержимому

Как обновить gradle в intellij idea

  • автор:

Обновление версий

Своевременное обновление версий Gradle и его плагинов гарантирует, что вы используете наиболее актуальную версию без багов и уязвимостей.

Также с выходом новых обновлений появляются новые функции, которые, возможно, понадобятся в проекте.

Gradle​

Мы используем Gradle Wrapper как обертку, которая автоматизирует процесс установки нужной версии Gradle.

Чтобы поменять версию Gradle в вашем проекте, необходимо перейти в директорию gradle/wrapper и открыть файл его настроек gradle-wrapper.properties :

  # .  # URL-адрес для загрузки дистрибутива Gradle distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip  # . 

Каталог с возможными версиями Gradle вы можете найти тут.

Gradle придерживается такого подхода к версионированию, при котором апдейты минорных версий не нарушают обратную совместимость. При обновлении же мажорных версий, например Gradle 6.9.1 ~> 7.0.2 , есть высокая вероятность, что что-то будет несовместимо, поэтому такие апдейты надо делать аккуратно и проверять, что будет с обеими платформами.

Plugins​

Что делать если Android Studio предложила обновить Android Gradle Plugin (AGP) или Kotlin Gradle Plugin? Какие плагины и зависимости можно обновлять без последствий?

Kotlin и Android​

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

С ноября 2020 года Android Gradle Plugin поддерживает семантическое версионирование, поэтому при обновлении AGP с версии 7.0 на версию 7.1 ничего сломаться не должно.

Kotlin поддерживает немного другой вид версионирования, о котором вы можете прочитать тут.

Например, если в вашем проекте используется Kotlin Multiplatform Plugin:

plugins  kotlin("multiplatform") version "1.4.21" > 

то при смене feature версии 1.4.21 ~> 1.5.21 нужно проверить компиляцию обеих платформ и работу кода во время выполнения. Также скорее всего придется обновлять и версии библиотек на те, которые поддерживают новую версию.

А при смене incremental ( 1.5.21 -> 1.5.30 ) и bugfix ( 1.5.20 -> 1.5.21 ) версий обратная совместимость сохраняется и проблем быть не должно.

Материалы​

Как включить правильную версию Gradel в IntelliJ IDEA?

Плагин Gradle выключал/включал. В каталоге «\.gradle\wrapper\dists» есть каталоги gradle-6.1-bin и gradle-6.8.3-all, как переключить на 6.8.3? В File | Settings | Build, Execution, Deployment | Build Tools | Gradle такой настройки нет.

build.gradle

plugins < id 'org.springframework.boot' version '2.4.3' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java' >group = 'ru.betry' version = '0.1' sourceCompatibility = '1.8' configurations < compileOnly < extendsFrom annotationProcessor >> repositories < mavenCentral() >dependencies < compile group: 'com.datastax.cassandra', name: 'cassandra-driver-core', version: '3.9.0' compile group: 'org.springframework.data', name: 'spring-data-cassandra', version: '3.0.1.RELEASE' compile group: 'org.springframework', name: 'spring-core', version: '5.2.7.RELEASE' compile group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version: '2.3.1.RELEASE' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation('org.springframework.boot:spring-boot-starter-test') < exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' >> test
  • Вопрос задан более двух лет назад
  • 2277 просмотров

Как обновить Gradle в Intellij IDEA? Ошибка Unsupported Project JDK 19

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

При создании проекта в IntelliJ IDEA вылезает данное окно. На данный момент самая свежая версия Gradle 7.5.1. Как обновить систему сборки в данной IDE? Возможно, нужно установить версию JDK пониже? Где можно почитать о JDK vX.X.X -> совместима с Gradle vX.X.X?

Отслеживать
8,571 4 4 золотых знака 21 21 серебряный знак 36 36 бронзовых знаков
задан 12 окт 2022 в 16:31
426 1 1 золотой знак 4 4 серебряных знака 19 19 бронзовых знаков

В вашем вопросе содержится сразу несколько проблем. Чтобы этот вопрос был полезен другим посетителям сайта, необходимо в одном вопросе формулировать лишь одну проблему. Пожалуйста, переформулируйте вопрос, чтобы он был сфокусирован на одной проблеме. Что касается апгрейда версии Gradle в проекте, сделать это можно из командной строки с помощью команды gradle wrapper —gradle-version 7.5.1 . Но для начала вам нужно поставить JDK ниже 19.

12 окт 2022 в 20:52

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

14 окт 2022 в 15:52

В текущем вопросе я у вас вижу ошибку Unsupported Project JDK, вам в первую очередь нужно не обновлять Gradle, а сначала понизить версию JDK.

Управление зависимостями в IntelliJ IDEA

В этом руководстве, в продолжение темы просмотра зависимостей, мы рассмотрим управление зависимостями в 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+Ввод

Ссылки по теме
  • (video) JetBrains — IntelliJ IDEA: Managing Dependencies
  • (video) JetBrains — IntelliJ IDEA: Viewing Dependencies
  • (blog) Viewing Dependencies in IntelliJ IDEA
  • (docs) JetBrains — Package Search
  • (docs) JetBrains — Package Search Build System Support Limitations
  • (code) JetBrains — intellij-samples
  • (code) Spring PetClinic
  • (book) Getting to Know IntelliJ IDEA — Trisha Gee & Helen Scott

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *