0Pricing
Kotlin Academy · Урок

Зависимости и плагины

Настраивайте сборку

«Зависимости и плагины» — бесплатный урок Kotlin Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Academy содержит 4 уроков всего.

Конфигурации зависимостей

Gradle группирует зависимости по конфигурации, которая определяет, когда и где они доступны:

  • implementation — компиляция и выполнение, без предоставления потребителям
  • api — также предоставляется потребителям
  • testImplementation — только для тестов

implementation и api

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

dependencies {
    api("com.squareup.okio:okio:3.9.0")          // leaks into public API
    implementation("com.google.code.gson:gson:2.11.0") // internal only
}

compileOnly и runtimeOnly

Некоторые зависимости нужны только на одном этапе:

  • compileOnly — доступны во время компиляции, но не включаются в пакет (например, аннотации)
  • runtimeOnly — доступны только во время выполнения (например, драйвер JDBC)
dependencies {
    compileOnly("org.projectlombok:lombok:1.18.32")
    runtimeOnly("org.postgresql:postgresql:42.7.3")
}

Координаты зависимости

Координата имеет вид group:name:version. Для ясности её можно разделить на отдельные компоненты.

dependencies {
    implementation(group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version = "1.8.1")
}

Зависимости проекта

В многомодульной сборке один модуль зависит от другого с помощью project(...).

dependencies {
    implementation(project(":core"))
}

Применение основных плагинов

Для встроенных плагинов версия не требуется. Плагины сообщества применяются с указанием идентификатора и версии.

plugins {
    id("java-library")
    kotlin("jvm") version "2.0.0"
    id("com.github.johnrengelman.shadow") version "8.1.1"
}

Плагины с портала

Большинство плагинов автоматически разрешаются через Gradle Plugin Portal, если их применить по идентификатору в блоке plugins { }.

plugins {
    id("org.jetbrains.kotlin.plugin.serialization") version "2.0.0"
}

Исключение транзитивных зависимостей

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

dependencies {
    implementation("com.example:lib:1.0") {
        exclude(group = "org.slf4j", module = "slf4j-api")
    }
}

Принудительный выбор версии

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

configurations.all {
    resolutionStrategy {
        force("com.google.guava:guava:33.2.1-jre")
    }
}

Просмотр дерева зависимостей

Используйте задачу dependencies, чтобы просмотреть разрешённый граф зависимостей и диагностировать конфликты.

// ./gradlew dependencies
// ./gradlew app:dependencies --configuration runtimeClasspath

Выбор подходящей конфигурации

По умолчанию используйте implementation. Применяйте api экономно, testImplementation — для тестов, а пару compileOnly/runtimeOnly — для потребностей, зависящих от этапа.

Быстрая проверка

Библиотека ведения журнала используется только внутри вашего модуля и никогда не появляется в его общедоступных типах. Какая конфигурация лучше всего подходит?

Итоги

Вы настроили сборку:

  • Конфигурации: implementation, api, compileOnly, runtimeOnly, testImplementation
  • Применение плагинов по идентификатору (с версией) или в качестве основных плагинов
  • Исключение и принудительный выбор версий, а также просмотр дерева зависимостей

Далее: написание собственных задач.

Часто задаваемые вопросы

Урок «Зависимости и плагины» бесплатный?

Да — полный текст урока «Зависимости и плагины» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Academy, подпишись на CoddyKit PRO. Курс Kotlin Academy содержит 4 уроков всего.

Чему я научусь в уроке «Зависимости и плагины»?

Настраивайте сборку Ты практикуешь Kotlin Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Kotlin Academy?

Предыдущий опыт не требуется. Kotlin Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Зависимости и плагины»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Kotlin Academy?

Да. Каждый урок Kotlin Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Kotlin DSL для Gradle
  2. Зависимости и плагины
  3. Пользовательские задачи
  4. Каталоги версий
← Назад к Kotlin Academy