我创建了一个简单的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无法使用它。也许它的清单中有什么?
答案 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)
可从Scala-tools.org获取OSGi版本的Scala库: http://scala-tools.org/repo-releases/com/weiglewilczek/scala-lang-osgi/scala-library/
答案 3 :(得分:2)
其他答案中提供的网址已过时。
我建议使用Scala IDE更新站点上提供的捆绑包:
http://download.scala-ide.org/sdk/lithium/e44/scala211/stable/site