Зависимости и плагины
Настраивайте сборку
«Зависимости и плагины» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Kotlin DSL для Gradle
- Зависимости и плагины
- Пользовательские задачи
- Каталоги версий