Настройка целей для Kotlin Multiplatform
Вы можете добавить цели при создании проекта с помощью мастера проектов. Если вам нужно добавить цель позже, вы можете сделать это вручную, используя шаблоны целей для поддерживаемых платформ.
Узнайте больше о дополнительных настройках для целей.
kotlin {
jvm() // Create a JVM target with the default name 'jvm'
linuxX64() {
/* Specify additional settings for the 'linux' target here */
}
}
Каждая цель может иметь одну или несколько компиляций. Помимо стандартных компиляций для тестирования и производства, вы можете создать пользовательские компиляции.
Выделение нескольких целей для одной платформы
В библиотеке 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–2023 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