Spec-Zone.ru › Kotlin 1.8

Понимание структуры проекта Multiplatform

Ознакомьтесь с основными частями вашего проекта Multiplatform:

  • Плагин Multiplatform

  • Целевые платформы

  • Наборы исходных кодов

  • Компиляции

Плагин Multiplatform

При создании проекта Multiplatform, Мастер проектов автоматически применяет плагин kotlin-multiplatform Gradle в файле build.gradle(.kts).

Вы также можете применить его вручную.

Плагин kotlin-multiplatform работает с Gradle 6.8.3 и новее.

plugins {
    kotlin("multiplatform") version "1.8.0"
}
plugins {
    id 'org.jetbrains.kotlin.multiplatform' version '1.8.0'
}

Плагин kotlin-multiplatform настраивает проект для создания приложения или библиотеки, работающей на нескольких платформах, и подготавливает его для сборки на этих платформах.

В файле build.gradle(.kts), он создаёт расширение kotlin на верхнем уровне, которое включает конфигурацию для целевых платформ, наборов исходных кодов и зависимостей.

Целевые платформы

Проект Multiplatform нацелен на несколько платформ, которые представлены различными целевыми платформами. Целевая платформа — это часть сборки, отвечающая за сборку, тестирование и упаковку приложения для конкретной платформы, например, macOS, iOS или Android. См. список поддерживаемых платформ.

При создании проекта Multiplatform, целевые платформы добавляются в блок kotlin в файле build.gradle (build.gradle.kts).

kotlin {
    jvm()    
    js {
        browser {}
    }
 }

Узнайте, как настроить целевые платформы вручную.

Наборы исходных кодов

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

Каждая директория набора исходных кодов включает файлы кода Kotlin (директория kotlin ) и resources. Мастер проектов создаёт стандартные наборы исходных кодов для компиляций main и test общего кода и всех добавленных целевых платформ.

Source sets

Имена наборов исходных кодов чувствительны к регистру.

Наборы исходных кодов добавляются в блок sourceSets верхнеуровневого блока kotlin. Например, вот структура наборов исходных кодов, получаемая при создании библиотеки Multiplatform с помощью мастера проектов IntelliJ IDEA:

kotlin {
    sourceSets {
        val commonMain by getting
        val commonTest by getting {
            dependencies {
                implementation(kotlin("test"))
            }
        }
        val jvmMain by getting
        val jvmTest by getting
        val jsMain by getting
        val jsTest by getting
        val nativeMain by getting
        val nativeTest by getting
    }
}
kotlin {
    sourceSets {
        commonMain {

        }
        commonTest {
            dependencies {
                implementation kotlin('test')
            }
        }
        jvmMain {

        }
        jvmTest {

        }
        jsMain {

        }
        jsTest {

        }
        nativeMain {

        }
        nativeTest {

        }
    }
}

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

Например, все функции Kotlin/Native доступны в наборе исходных кодов desktopMain, который нацелен на платформы Linux (linuxX64), Windows (mingwX64) и macOS (macosX64).

Hierarchical structure

Узнайте, как построить иерархию наборов исходных кодов.

Компиляции

Каждая целевая платформа может иметь одну или несколько компиляций, например, для целей производства и тестирования.

Для каждой целевой платформы по умолчанию включаются следующие компиляции:

  • main и test компиляции для JVM, JS и Native целевых платформ.

  • Компиляция на каждую варианту сборки Android для целевых платформ Android.

Compilations

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

Узнайте, как настроить компиляции.

Последнее изменение: 10 января 2023
Начало работы с Kotlin Multiplatform Настройка целевых платформ для Kotlin Multiplatform

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

Spec-Zone.ru

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