Skip to main content

Публикация

danger

Данная статья находится в разработке!

caution

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

Добавление новых таргетов для мультиплатформенной библиотеки со стороны потребителя не поддерживается.

Maven

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

Репозитории бывают трех типов:

  • локальный
  • центральный
  • удаленный

Библиотека, созданная из многоплатформенного проекта, может быть опубликована в репозитории Maven с плагином Gradle maven-publish, который может применяться следующим образом:

plugins {
// ...
id 'maven-publish'
}

При применении данного плагина публикации по умолчанию создаются для каждой из целей, которая может быть создана на текущем хосте. Увидеть это можно, заглянув в IceRock MOKO Maven репозиторий:

moko-maven-rep

Это требует задания в проекте group и version:

//  build.gradle.kts
group = "dev.icerock.moko"
version = libs.versions.mokoUnitsVersion.get()
#   libs.versions.toml
# ...
mokoUnitsVersion = "0.6.2"

Идентификаторы артефакта по умолчанию следуют шаблону <projName>-<targetName>, например, units-iosx64 для цели, названной iosx64 в проекте units.

Кроме того, по умолчанию добавляется дополнительная публикация, содержащая сериализованные объявления Kotlin и используемая IDE для анализа мультиплатформенных библиотек.

По умолчанию в каждую публикацию добавляется исходный код JAR, а также его главный артефакт. Исходные коды JAR содержат исходные коды, используемые при компиляции цели main:

units-main

Материалы