Spec-Zone.ru › Kotlin 1.7

Настройка целей для Kotlin Multiplatform

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

Узнайте больше о дополнительных настройках для целей.

kotlin {
    jvm() // Create a JVM target with the default name 'jvm'
        
    linuxX64() {
        /* Specify additional settings for the 'linux' target here */
    }
}

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

Отличение нескольких целей для одной платформы

В многоплатформенной библиотеке Kotlin Multiplatform можно иметь несколько целей для одной платформы. Например, эти цели могут предоставлять один и тот же API, но использовать различные библиотеки во время выполнения, такие как фреймворки для тестирования и решения для ведения журналов. Зависимости от такой многоплатформенной библиотеки могут не разрешиться, поскольку неясно, какую цель выбрать.

Для решения этой проблемы пометите цели как на стороне разработчика библиотеки, так и на стороне потребителя специальным атрибутом, который Gradle использует при разрешении зависимостей.

Например, рассмотрим библиотеку тестирования, которая поддерживает как JUnit, так и TestNG в двух целях. Разработчик библиотеки должен добавить атрибут в обе цели следующим образом:

val testFrameworkAttribute = Attribute.of("com.example.testFramework", String::class.java)

kotlin {
    jvm("junit") {
        attributes.attribute(testFrameworkAttribute, "junit")
    }
    jvm("testng") {
        attributes.attribute(testFrameworkAttribute, "testng")
    }
}
def testFrameworkAttribute = Attribute.of('com.example.testFramework', String)

kotlin {
    jvm('junit') {
        attributes.attribute(testFrameworkAttribute, 'junit')
    }
    jvm('testng') {
        attributes.attribute(testFrameworkAttribute, 'testng')
    }
}

Потребитель должен добавить атрибут в единственную цель, где возникает неоднозначность.

Последнее изменение: 06 сентября 2022 г.
Понимание структуры проекта 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-set-up-targets.html

Spec-Zone.ru

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