Мультиплатформенный проект с общим модулем - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь создать многоплатформенный проект с общей зависимостью, но не могу понять, что я делаю неправильно.

В качестве фона я хочу создать библиотеку, которая сгенерировала какую-то конфигурацию и использует эту конфигурацию для библиотеки времени выполнения, которая должна работать на jvm и node.js. Таким образом, классы данных конфигурации могут быть общими, которые я хочу поместить в общий модуль. Этот код не зависит от платформы. Генерация конфигурации (я называю это CLI) должна быть только jvm. Итак, у меня есть эти модули (с именами плагинов):

  • cli (org.jetbrains.kotlin.jvm)
  • расшаренный (kotlin-platform-common)
  • общая среда выполнения (kotlin-platform-common)
  • runtime-js (kotlin-platform-js)
  • runtime-jvm (kotlin-platform-jvm)

Я настроил модуль shared как зависимость через compile project(":shared"), но кажется, что ни один из классов shared не находится в пути к классам модулей, начинающихся со времени выполнения.

Это пока невозможно или я что-то не так сделал?

1 Ответ

0 голосов
/ 13 сентября 2018

Чтобы подключить общий модуль (т. Е. Модуль, построенный на kotlin-platform-common) с его реализациями, специфичными для платформы, вы должны предоставить для них зависимость expectedBy project(':shared') вместо compile.

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

...