Настройка целей для 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')
}
}
Потребитель должен добавить атрибут в единственную цель, где возникает неоднозначность.
© 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