создание и использование автономной банки scalaz без sbt

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

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

  • перейти в нетарированный каталог scalaz
  • запустить sbt из проекта scalaz
  • скомпилировать проект scalaz
  • сделать пакет (командой package)
  • sbt сделать jar полным/target/scala-2.9.1/scalaz-full_2.9.1-6.0.4-SNAPSHOT.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._ не работает

Любая идея?


person Robert Zaremba    schedule 17.11.2011    source источник


Ответы (2)


вы можете скачать 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._ как и ожидалось.

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

person David    schedule 17.11.2011
comment
Не совсем так - хочу сделать из sbt. - person Robert Zaremba; 18.11.2011
comment
@RobertZaremba Я изменил свой ответ. Я надеюсь, это поможет. - person David; 18.11.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.

person Robert Zaremba    schedule 18.11.2011