【问题标题】:Using a Scala library that is only available for an older Scala version使用仅适用于旧 Scala 版本的 Scala 库
【发布时间】:2011-08-23 18:34:07
【问题描述】:

我是 Scala 新手。但是,我使用 Scala 2.9.0 创建了一个中等规模的程序。现在我想使用一个仅适用于 Scala 2.7.7 的开源库。

可以在我的 Scala 2.9.0 程序中使用这个 2.7.7 库吗?我该怎么做?我已经看过 sbt 但并没有真正成功。有人有 hello world 示例吗?

【问题讨论】:

    标签: scala incompatibility


    【解决方案1】:

    原则上应该可以为 2.7.7 jar 和自定义包装器使用自定义类加载器。但实际上,由于该库是开源的,使用 2.9 重新编译它并进行所需的更改很可能会减少工作量。 (通常不会很多。)

    【讨论】:

    • 在 2.7 和 2.8 之间有一些相当大的变化,包括源不兼容,例如新的集合库。如果您选择更新开源库,这篇文章可能是一个有用的指南:stackoverflow.com/questions/1243794/… 展望未来,Scala 团队将更加重视向后兼容性和迁移工具。
    • @Kipton Barros - 结构上的变化相当大,但大多数端口最终都相当简单和机械除非代码扩展了一堆集合类。
    【解决方案2】:

    Typesafe 有一个迁移管理器的早期预览版 (http://typesafe.com/technology/migration-manager),它承诺报告和解决二进制不兼容问题。显然,早期预览只报告了不兼容性,但可能值得一试。

    【讨论】:

      【解决方案3】:

      最好的方法是使用维护的库或更新代码。

      如果您选择第二个选项,请使用标志 -deprecation-Xmigration 编译代码。

      这会告诉您版本之间需要更改的内容。

      【讨论】:

        猜你喜欢
        • 2013-11-10
        • 2014-01-16
        • 2020-09-18
        • 1970-01-01
        • 1970-01-01
        • 2023-04-04
        • 2014-08-13
        • 1970-01-01
        • 2017-02-09
        相关资源
        最近更新 更多