У меня есть небольшая библиотека Scala, которую я хочу использовать в приложении Scala.js: https://github.com/fbaierl/scala-tarjan
По этой причине я решил создать кросс-скомпилированную библиотеку, которая компилируется как в Scala.js, так и в Scala JVM: https://github.com/fbaierl/scalajs-cross-compile-tarjan. Но я немного застрял в том, как продолжать дальше.
Пока у меня есть весь соответствующий код внутри общего каталога:
- общий / SRC / Главная / 1011 * Скала *
и два Tarjan.scala
класса для JVM и JS здесь:
- JS / SRC / главная / Скала /
- JVM / SRC / главная / Скала /
Предполагается, что это публичные "интерфейсные классы" как для JVM, так и для JS, которые просто вызывают методы из общей библиотеки.
JS / SRC / главная / Скала / Tarjan.scala:
import com.github.fbaierl.tarjan.{TarjanRecursive => lib}
import scala.scalajs.js.annotation.{JSExport, JSExportTopLevel}
@JSExportTopLevel("Tarjan")
object Tarjan {
@JSExport
def tarjan[T](g: Map[T, List[T]]): Unit = lib.tarjan(g)
}
JVM / SRC / главная / Скала / Tarjan.scala:
import com.github.fbaierl.tarjan.{TarjanRecursive => lib}
object Tarjan {
def tarjan[T](g: Map[T, List[T]]): Unit = lib.tarjan(g)
}
Это вообще правильный подход? Могу ли я скомпилировать проект и опубликовать его, например, на. Sonatype