Как использовать модуль зубила в качестве пакета - PullRequest
2 голосов
/ 02 октября 2019

Для народов скала это должен быть очевидный ответ. Но для нового пользователя scala, такого как я, это не так;)

У меня есть два модуля scala (пакет) со «стандартной» иерархией ( spi2wb и mdio ), которые я хочуиспользовать в третьем проекте / модуле.

Иерархия каталогов файлов для моего модуля spi2wb следующая:

├── build.sbt
├── Makefile
├── README.md
└── src
    ├── main
    │   └── scala
    │       └── spi2wb.scala
    └── test
        └── scala
            └── test_spi2wb.scala

В исходном коде scala я добавил заголовок пакета:

  • в src / main / scala / spi2wb.scala
package spi2wb
  • и в src / main / scala / mdio.scala
package mdio

Эти два проекта находятся на жестком диске моего домашнего компьютера. Интересно, как сделать, чтобы эти два модуля использовались в моем третьем проекте в стиле «импорта *»:

import mdio._
import spi2wb._

Опять же, это может быть просто, но я не могу найти простой способ сделать это.

1 Ответ

3 голосов
/ 02 октября 2019

Я нашел решение с publishLocal.

В build.sbt каждого модуля я добавил версию и организацию:

version := "1.0-rc2" 

organization := "org.armadeus"

Затем для каждого подмодуля я запустил команды publishLocal:

$ sbt publishLocal

И в sbt моего основного "верхнего" модуля я добавил зависимости:

libraryDependencies ++= Seq("org.armadeus" %% "spi2wb" % "1.1")

libraryDependencies ++= Seq("org.armadeus" %% "mdio" % "1.0-rc2")

Обратите внимание, чтобы не забыть двойной символ %% в качестве первого разделителя, чтобы он работал сваша версия Scala.

Я не знаю, хороший ли это способ, но он работает.

...