在没有sbt的情况下创建和使用独立的scalaz jar

时间:2011-11-17 17:36:12

标签: scala sbt scalaz

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

我从scala-lang.org获得了scala包,并存储在/ opt / scala中 到目前为止我做了:

  • 转到解开的scalaz目录
  • 从scalaz项目运行sb​​t
  • 编译scalaz项目
  • 制作包(按包命令)
  • sbt make jar full / 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._并且无效。 键入import scalaz后的REPL代码完整性建议:scalaz_2.9.1-6.0.4-SNAPSHOTimport scalaz_2.9.1-6.0.4-SNAPSHOT._不起作用

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以下载scalaz并解压缩包含scalaz-core_2.9.1-6.0.3.jar的jar。或download scalaz-core directly

然后您可以使用: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._

答案 1 :(得分: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,并复制所需的jar(例如:scalaz-core_2.9.1-6.0.4-SNAPSHOT.jar,scalaz-http_2。 9.1-6.0.4-SNAPSHOT.jar ...)到lib目录。