Ознакомьтесь со своим проектом
Ознакомьтесь с основными частями вашего многоплатформенного проекта:
Многоплатформенный плагин
При создании многоплатформенного проекта мастер проекта автоматически применяет плагин kotlin-multiplatform Gradle в файле build.gradle(.kts).
Вы также можете применить его вручную.
Плагин
kotlin-multiplatformработает с Gradle 6.0 или более поздними версиями.
plugins {
id 'org.jetbrains.kotlin.multiplatform' version '1.4.10'
}
plugins {
kotlin("multiplatform") version "1.4.10"
}
Плагин kotlin-multiplatform настраивает проект для создания приложения или библиотеки, работающей на нескольких платформах, и подготавливает его для сборки на этих платформах.
В файле build.gradle(.kts) он создаёт расширение kotlin на верхнем уровне, которое включает конфигурацию для целей, наборов исходных данных и зависимостей.
Цели
Многоплатформенный проект нацелен на несколько платформ, которые представлены различными целями. Цель — это часть сборки, которая отвечает за сборку, тестирование и упаковку приложения для определённой платформы, например, macOS, iOS или Android. См. список поддерживаемых платформ.
При создании многоплатформенного проекта цели добавляются в блок kotlin в файле build.gradle (build.gradle.kts).
kotlin {
jvm()
js {
browser {}
}
}
Узнайте, как настроить цели вручную.
Наборы исходных данных
Проект включает директорию src с наборами исходных данных Kotlin, которые представляют собой коллекции файлов кода Kotlin, вместе с их ресурсами, зависимостями и настройками языка. Набор исходных данных может использоваться в компиляциях Kotlin для одной или нескольких целевых платформ.
Каждая директория набора исходных данных включает файлы кода Kotlin (директория kotlin) и resources. Мастер проекта создаёт стандартные наборы исходных данных для компиляций main и test общего кода и всех добавленных целей.
Имена наборов исходных данных чувствительны к регистру.
Наборы исходных данных добавляются в блок sourceSets блока верхнего уровня kotlin.
kotlin {
sourceSets {
commonMain { /* ... */}
commonTest { /* ... */}
jvmMain { /* ... */}
jvmTest { /* ... */ }
jsMain { /* ... */}
jsTest { /* ... */}
}
}
kotlin {
sourceSets {
val commonMain by getting { /* ... */ }
val commonTest by getting { /* ... */ }
val jvmMain by getting { /* ... */ }
val jvmTest by getting { /* ... */ }
val jsMain by getting { /* ... */ }
val jsTest by getting { /* ... */ }
}
}
Наборы исходных данных образуют иерархию, используемую для совместного использования общего кода. В наборе исходных данных, используемом несколькими целями, можно использовать платформенно-специфические языковые возможности и зависимости, которые доступны для всех этих целей.
Например, все функции Kotlin/Native доступны в наборе исходных данных desktopMain, который нацелен на платформы Linux (linuxX64), Windows (mingwX64) и macOS (macosX64).
Узнайте, как построить иерархию наборов исходных данных.
Компиляции
Каждая цель может иметь одну или несколько компиляций, например, для целей производства и тестирования.
Для каждой цели стандартные компиляции включают:
-
mainиtestкомпиляции для целей JVM, JS и Native. - Компиляция на каждый вариант сборки Android для целей Android.
Каждая компиляция имеет стандартный набор исходных данных, содержащий исходные файлы и зависимости, специфичные для данной компиляции.
Узнайте, как настроить компиляции.
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/reference/mpp-discover-project.html