Spec-Zone.ru › Kotlin 2

Добавление зависимостей от мультиплатформенных библиотек

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

Чтобы добавить зависимость от библиотеки, обновите файл build.gradle(.kts) в каталоге проекта, содержащем общий код. Задайте зависимость нужного типа (например, implementation) в блоке dependencies {}:

kotlin {
    //...
    sourceSets {
        commonMain.dependencies {
            implementation("com.example:my-library:1.0") // library shared for all source sets
        }
    }
}
kotlin {
    //...
    sourceSets {
        commonMain {
            dependencies {
                implementation 'com.example:my-library:1.0'
            }
        }
    }
}

Зависимость от библиотеки Kotlin

Стандартная библиотека

Зависимость от стандартной библиотеки (stdlib) автоматически добавляется в каждый набор исходного кода. Версия стандартной библиотеки совпадает с версией плагина kotlin-multiplatform.

Для наборов исходного кода, предназначенных для конкретных платформ, используется соответствующий вариант библиотеки для этой платформы, а для остальных добавляется общая стандартная библиотека. Плагин Kotlin Gradle выбирает подходящую стандартную библиотеку JVM в зависимости от параметра компилятора compilerOptions.jvmTarget в скрипте сборки Gradle.

Узнайте, как изменить поведение по умолчанию.

Библиотеки для тестирования

Для мультиплатформенных тестов доступен API kotlin.test. Создав мультиплатформенный проект, вы можете добавить зависимости для тестирования во все наборы исходного кода с помощью одной зависимости в commonTest:

kotlin {
    //...
    sourceSets {
        commonTest.dependencies {
            implementation(kotlin("test")) // Brings all the platform dependencies automatically
        }
    }
}
kotlin {
    //...
    sourceSets {
        commonTest {
            dependencies {
                implementation kotlin("test") // Brings all the platform dependencies automatically
            }
        }
    }
}

Библиотеки kotlinx

Если вы используете мультиплатформенную библиотеку и хотите добавить зависимость от общего кода, укажите зависимость только один раз в общем наборе исходного кода. Используйте базовое имя артефакта библиотеки, например kotlinx-coroutines-core:

kotlin {
    //...
    sourceSets {
        commonMain.dependencies {
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0")
        }
    }
}
kotlin {
    //...
    sourceSets {
        commonMain {
            dependencies {
                implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0'
            }
        }
    }
}

Если вам нужна библиотека kotlinx для зависимости от конкретной платформы, вы всё равно можете использовать базовое имя артефакта библиотеки в соответствующем наборе исходного кода платформы:

kotlin {
    //...
    sourceSets {
        jvmMain.dependencies {
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0")
        }
    }
}
kotlin {
    //...
    sourceSets {
        jvmMain {
            dependencies {
                implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0'
            }
        }
    }
}

Зависимость от библиотек Kotlin Multiplatform

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

Изучите доступные библиотеки Kotlin Multiplatform на сайте klibs.io.

Библиотека для всех наборов исходного кода

Если вы хотите использовать библиотеку во всех наборах исходного кода, достаточно добавить её только в общий набор. Плагин Kotlin Multiplatform Gradle автоматически добавит соответствующие компоненты во все остальные наборы исходного кода.

Нельзя задавать зависимости от библиотек для конкретных платформ в общем наборе исходного кода.

kotlin {
    //...
    sourceSets {
        commonMain.dependencies {
            implementation("io.ktor:ktor-client-core:3.5.2")
        }
        androidMain.dependencies {
            // dependency to a platform part of ktor-client will be added automatically
        }
    }
}
kotlin {
    //...
    sourceSets {
        commonMain {
            dependencies {
                implementation 'io.ktor:ktor-client-core:3.5.2'
            }
        }
        androidMain {
            dependencies {
                // dependency to platform part of ktor-client will be added automatically
            }
        }
    }
}

Вы также можете настроить общую библиотеку в блоке dependencies {} верхнего уровня. См. раздел Настройка зависимостей на верхнем уровне.

Библиотека для отдельных наборов исходного кода

Если вы хотите использовать мультиплатформенную библиотеку только в отдельных наборах исходного кода, добавьте её только в эти наборы. Объявления указанных библиотек будут доступны только в этих наборах исходного кода.

В таких случаях используйте общее имя библиотеки, а не имя для конкретной платформы. Например, для SQLDelight, как в примере ниже, укажите native-driver, а не native-driver-iosx64. Точное имя можно найти в документации библиотеки.

kotlin {
    //...
    sourceSets {
        commonMain.dependencies {
            // kotlinx.coroutines will be available in all source sets
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0")
        }
        androidMain.dependencies {

        }
        iosMain.dependencies {
            // SQLDelight will be available only in the iOS source set, but not in Android or common
            implementation("com.squareup.sqldelight:native-driver:2.3.2")
        }
        wasmJsMain.dependencies {
            
        }
    }
}
kotlin {
    //...
    sourceSets {
        commonMain {
            dependencies {
                // kotlinx.coroutines will be available in all source sets
                implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0'
            }
        }
        androidMain {
            dependencies {}
        }
        iosMain {
            dependencies {
                // SQLDelight will be available only in the iOS source set, but not in Android or common
                implementation 'com.squareup.sqldelight:native-driver:2.3.2'
            }
        }
        wasmJsMain {
            dependencies {}
        }
    }
}

Зависимость от другого мультиплатформенного проекта

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

kotlin {
    //...
    sourceSets {
        commonMain.dependencies {
            implementation(project(":some-other-multiplatform-module"))
        }
        androidMain.dependencies {
            // platform part of :some-other-multiplatform-module will be added automatically
        }
    }
}
kotlin {
    //...
    sourceSets {
        commonMain {
            dependencies {
                implementation project(':some-other-multiplatform-module')
            }
        }
        androidMain {
            dependencies {
                // platform part of :some-other-multiplatform-module will be added automatically
            }
        }
    }
}

Что дальше?

Ознакомьтесь с другими материалами о добавлении зависимостей в мультиплатформенные проекты и узнайте больше о следующем:

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

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

  • Добавление зависимостей в проект Compose Multiplatform для iOS, Android, настольных компьютеров и веб-платформы

27 июля 2026 г.
Иерархическая структура проектаДобавление зависимостей Android

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform/multiplatform-add-dependencies.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API