создание и использование автономной скалярной банки без sbt - PullRequest
2 голосов
/ 17 ноября 2011

Я скачал снимок скалаза из репозитория (версия 6.0.4).
Я хочу создать автономный файл jar и поместить его в мою директорию scala lib, чтобы использовать scalaz без sbt.

У меня есть пакет scala от scala-lang.org, который хранится в / opt / scala
Насколько я это сделал:

  • перейти в каталог untared scalaz
  • запустить sbt из скалярного проекта
  • скомпилировать скалярный проект
  • сделать пакет (командой package)
  • sbt сделать банку полной / target / scala-2.9.1 / scalaz-full_2.9.1-6.0.4-SNAPSHOT.jar
  • он также производит другой jar: full / lib / sxr_2.9.0-0.2.7.jar
  • Я переместил обе банки в / opt / scala / lib

После этого я пробую scala repl и не могу импортировать scalaz. Я пытался импортировать scalaz._, Scalaz._, org.scalaz._, scalaz-core._ и не работает. Завершение кода REPL после ввода import scalaz предлагает: scalaz_2.9.1-6.0.4-SNAPSHOT.
Но import scalaz_2.9.1-6.0.4-SNAPSHOT._ не работает

Есть идеи?

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Мне кажется, я знаю проблему.

scalaz-full_2.9.1-6.0.4-SNAPSHOT.jar - это не пакет класса java jar, это просто zip-файл с проектом scalaz - поэтому он содержит не пакет- как дерево каталогов (например, имена каталогов содержат '.').

Поэтому, чтобы использовать его, нам нужно распаковать scalaz-full_2.9.1-6.0.4-SNAPSHOT.jar и скопировать нужные файлы jar (например:scalaz-core_2.9.1-6.0.4-SNAPSHOT.jar, scalaz-http_2.9.1-6.0.4-SNAPSHOT.jar ...) в каталог lib.

1 голос
/ 18 ноября 2011

вы можете скачать scalaz и извлечь банку, содержащую scalaz-core_2.9.1-6.0.3.jar.Или загрузите scalaz-core напрямую .

, затем вы можете использовать: scala -cp scalaz-core_2.9.1-6.0.3.jar, чтобы наконец запустить REPL import scalaz._, как ожидается.

Если вы хотите использоватьjar, созданный sbt, вы можете найти в core/target/scala-2.9.1/scalaz-core_2.9.1-6.0.4-SNAPSHOT.jar (вы также найдете пакеты с исходным кодом и javadoc в том же каталоге).Просто поместите этот файл в ваш путь к классам (например, используя scala -cp), и вы сможете import scalaz._

...