Spec-Zone.ru › Kotlin 1.6

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

Рассмотрите основные части вашего проекта Multiplatform:

  • Плагин Multiplatform

  • Цели

  • Наборы исходных файлов

  • Компиляции

Плагин Multiplatform

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

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

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

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

Плагин 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.

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 {
    sourceSets {
        commonMain { /* ... */} 
        commonTest { /* ... */}
        jvmMain { /* ... */}
        jvmTest { /* ... */ }
        jsMain { /* ... */}
        jsTest { /* ... */}    
    }
}

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

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

Hierarchical structure

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

Компиляции

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

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

  • main и test компиляции для целей JVM, JS и Native.

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

Compilations

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

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

Последнее изменение: 07 апреля 2022
Начать работу с Kotlin Multiplatform Настройка целей для Kotlin Multiplatform

© 2010–2022 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