Как добавить scalax.io как зависимость в SBT?

Я хочу использовать scalax.io._ для управления файловыми операциями с помощью SBT.

Когда я запустил его, я получил сообщение об ошибке с сообщением scalax is not found.

>sbt run
import scalax.io._
[error]        ^
[error] iotest.scala:49: not found: object scalax

Как найти зависимость библиотеки для этого конкретного?

Более общий вопрос, как получить информацию о зависимости библиотеки для любой библиотеки? Например, если мне нужно использовать actor в scala, мне нужно указать зависимость библиотеки. Как найти зависимость библиотеки?

Ответ 1

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

Используйте http://search.maven.org/ для поиска библиотеки, и при поиске scala-io вы получите список доступных библиотек scala-io.

Поскольку я никогда не работал с библиотекой, я скопировал пример ScalaIOExample из Scala документации IO, чтобы иметь рабочий пример. Ему нужны пакеты scalax.io и scalax.file, которые распространяются как артефакт scala-io-file. Поиск артефакта приводит к Подробности артефакта Для com.github.scala-incubator.io:scala-io-file_2.10:0.4.2 с информацией о том, как использовать его с Scala SBT в разделе информации о зависимостях.

С этим я создал следующий build.sbt в проекте sbt:

scalaVersion := "2.10.3"

libraryDependencies += "com.github.scala-incubator.io" %% "scala-io-file" % "0.4.2"

Он добавит scala -io-file_2.10-0.4.2.jar путь к классу и выполнение прогона в проекте даст следующие результаты:

$ sbt run
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Loading project definition from /Users/jacek/sandbox/stackoverflow/sbt-scala-io/project
[info] Set current project to sbt-scala-io (in build file:/Users/jacek/sandbox/stackoverflow/sbt-scala-io/)
[info] Running ScalaIOExample
Not interrupting system thread Thread[Keep-Alive-Timer,8,system]
Not interrupting system thread Thread[Keep-Alive-SocketCleaner,8,system]
[success] Total time: 5 s, completed Dec 31, 2013 11:16:42 PM