2

我已经从存储库(版本 6.0.4)下载了 scalaz 快照。
我想创建独立的 jar 文件并将其放入我的 scala lib 目录中,以便在没有 sbt 的情况下使用 scalaz。

我有来自 scala-lang.org 的 scala 包,并存储在 /opt/scala
到目前为止我所做的:

  • 转到未去皮重的 scalaz 目录
  • 从 scalaz 项目运行 sbt
  • 编译scalaz项目
  • 制作一个包(通过包命令)
  • sbt 制作一个完整的 jar/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._不工作

任何想法?

4

2 回答 2

1

我想我知道问题所在。

scalaz-full_2.9.1-6.0.4-SNAPSHOT.jar 不是 java jar 类包,它只是一个带有 scalaz 项目的 zip - 所以它不包含包 - 类似目录树(例如:目录名称包含“.”)。

因此,要使用它,我们需要解压缩 scalaz-full_2.9.1-6.0.4-SNAPSHOT.jar,并复制所需的 jars(例如:scalaz-core_2.9.1-6.0.4-SNAPSHOT.jar、scalaz-http_2.9.1-6.0 .4-SNAPSHOT.jar ...) 到 lib 目录。

于 2011-11-18T13:14:13.233 回答
1

您可以下载scalaz并提取包含scalaz-core_2.9.1-6.0.3.jar. 或者直接下载scalaz-core

然后您可以使用 :scala -cp scalaz-core_2.9.1-6.0.3.jar最终import scalaz._按预期启动 REPL。

如果你想使用 sbt 生成的 jar,你可以找到它core/target/scala-2.9.1/scalaz-core_2.9.1-6.0.4-SNAPSHOT.jar(你也会在同一目录中找到 source 和 javadoc 包)。只需将此文件放在您的类路径中(scala -cp例如使用),您就可以import scalaz._

于 2011-11-17T22:55:55.970 回答