Scala Library作为OSGi Bundle

时间:2011-08-06 09:32:58

标签: scala osgi

我创建了一个简单的Eclipse RCP客户端,现在我想把它变成一个Scala应用程序。添加Scala特性允许IDE编译代码,但它不会运行,因为Scala不能用作OSGi包。在网上搜索只返回了相互矛盾的信息,这似乎意味着没有“标准”的方法来做到这一点。我找到了一篇最近的帖子,说要使用这个链接:

scala-eclipse-toolchain-osgi-2.9.0-1

但Eclipse说:“那里没有可用的物品”。我可以用浏览器去那里,看看有什么东西。但我不知道OSGi的潜在机制,所以我不知道出了什么问题。我可以从罐子里创建一个捆绑包,但这是愚蠢的。 Scala 必须已作为预定义的OSGi包在某处可用!

[编辑]我尝试自己创建捆绑包,就像我使用Slick-Util一样,但它也没有用。这没有逻辑意义。我不知道如何从Jar创建一个包可以用于Jar A,但不能用于Jar B.我甚至复制了自制的Slick-Util软件包,用scala-library.jar替换了jar,并更新了捆绑名称和其他设置无处不在,它仍然无法正常工作。我的猜测是scala-library.jar本身有问题,导致Eclipse无法使用它。也许它的清单中有什么?

4 个答案:

答案 0 :(得分:3)

你可以在那里找到OSGi-fied Scala罐子:https://github.com/weiglewilczek/scala-lang-osgi

答案 1 :(得分:3)

  

添加Scala特性允许IDE编译代码,但它不会运行,因为Scala不能用作OSGi包。

Eclipse插件提供的Scala库是 OSGi包。打开MANIFEST.MF并检查“依赖关系”选项卡中是否存在org.scala-ide.scala.library(如果您为插件项目添加了Scala特性,它应该已自动添加,但如果您添加了插件性质则不会到Scala项目)。

  

但Eclipse说:“那里没有可用的物品”。我可以用浏览器去那里,看看有什么东西。但我不知道OSGi的潜在机制,所以我不知道出了什么问题。

Eclipse不是在寻找OSGi包,而是寻找update site(包含其他功能和包的功能)。

答案 2 :(得分:2)

答案 3 :(得分:2)

其他答案中提供的网址已过时。

我建议使用Scala IDE更新站点上提供的捆绑包:

http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/site