【问题标题】:creating and using standalone scalaz jar without sbt创建和使用没有 sbt 的独立 scalaz jar
【发布时间】:2011-12-31 13:59:31
【问题描述】:

我已经从存储库(版本 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
  • 我将两个 jar 移至 /opt/scala/lib

在此之后,我尝试了 scala repl,但我无法导入 scalaz。我尝试导入scalaz._Scalaz._org.scalaz._scalaz-core._ 并且不工作。 输入 import scalaz 后 REPL 代码完成提示:scalaz_2.9.1-6.0.4-SNAPSHOT.
但是import scalaz_2.9.1-6.0.4-SNAPSHOT._ 不行

有什么想法吗?

【问题讨论】:

    标签: scala sbt scalaz


    【解决方案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 来启动 REPL,最终 import scalaz._ 按预期进行。

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

    【讨论】:

    • 不完全是 - 我想从 sbt 制作它。
    • @RobertZaremba 我已经修改了我的答案。我希望这会有所帮助。
    【解决方案2】:

    我想我知道问题所在。

    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 目录。

    【讨论】:

      猜你喜欢
      • 2014-01-23
      • 1970-01-01
      • 2011-08-26
      • 2011-07-10
      • 2011-05-28
      • 2012-04-15
      • 2016-05-10
      • 2014-04-28
      • 2012-08-27
      相关资源
      最近更新 更多