【问题标题】:How to write eclipse rcp applications with scala?如何使用 scala 编写 eclipse rcp 应用程序?
【发布时间】:2010-10-01 13:49:52
【问题描述】:

Scala Eclipse 插件页面说: * 支持 Eclipse 插件和 OSGi 开发,包括从 plugin.xml 和清单文件超链接到 Scala 源代码。

这种支持如何工作?没有制作 Scala 插件的向导。我没有找到关于如何在 Eclipse 插件/RCP 应用程序中使用 Scala 的文档。有没有可能?

【问题讨论】:

    标签: eclipse scala eclipse-plugin osgi eclipse-rcp


    【解决方案1】:

    是的,这是可能的。事实上,Scala Eclipse 插件本身就是用 Scala 编写的。

    我自己从未创建过 Scala RCP 应用程序,但我猜您需要做的是通常使用您选择的向导创建项目。一旦项目在您的工作区中,右键单击并选择“添加 Scala Nature”(或类似的效果)。结果将是一个 Scala 项目,其中包含 RCP 应用程序的所有常规陷阱。完成这些设置步骤后,您应该能够在项目中使用 Java 和 Scala。

    【讨论】:

    • 是的,我试过了,但由于某种原因,scala 代码从未执行过。它没有崩溃,也没有任何东西没有运行 scala 部分。
    【解决方案2】:

    这是一个老问题;但更新可能对某人有帮助。

    我可以说我已经使用 scala 2.8.0 beta 版本成功创建了一个 Scala RCP 应用程序。改进是显着的。我按照here 描述的步骤进行操作。这比我最初想象的要容易。

    为了更好地衡量,我随后将 Java 代码翻译成 Scala ...一次一个文件。

    【讨论】:

      【解决方案3】:

      用 Scala 编写的插件代码不能与 RCP 一起工作的原因仅仅是在构建插件 jar 时没有导出 .class 文件。 但是您可以使用一种解决方法:使用 Plug-In Manifest Editor 打开 plugin.xml,选择 Runtime 选项卡并为类路径添加一个新条目“bin”。然后在 Build 选项卡上的 Binary Build 树中,选择 bin 文件夹。 工作区中编译的类文件,然后在导出产品时导出到插件jar中。

      【讨论】:

        【解决方案4】:

        【讨论】:

          【解决方案5】:

          将Scala Nature添加到插件项目后,不要忘记在插件的依赖项中包含scala.library(并更新相应的运行和产品配置)! (另外,如果在添加 Scala Nature 时构建路径中出现了另一个 JRE 系统库,您可以安全地删除它以避免出现RequiredExecutionEnvironment 警告。)

          【讨论】:

          • 只是为了更新:对于更新版本的插件,当您将 Scala 特性添加到插件项目时,它应该会自动添加 Scala 库依赖项。
          【解决方案6】:

          有人让它作为实际出口产品工作吗?我很高兴开发我的 scala 插件,它在 Eclipse 中运行良好,但是当我尝试导出产品时,构建过程失败,说它无法将我的 scala 对象解析为类型。我发现了这个错误报告:

          http://lampsvn.epfl.ch/trac/scala/ticket/1919

          【讨论】:

            【解决方案7】:

            Scala Nature 调用 JDT 编译器并使 Java 类可用于 Scala 编译器。我遇到了一个问题,我同时启用了 Scala Nature 和 Java Nature。确保您没有启用 Java Nature

            【讨论】: