Spec-Zone.ru › Kotlin 1.4

Настройка целей вручную

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

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

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

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

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

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

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

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

def testFrameworkAttribute = Attribute.of('com.example.testFramework', String)

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

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

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

© 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-set-up-targets.html

Spec-Zone.ru

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