5

我希望在 OSGi 容器 ( apache-servicemix-4.4.1-fuse-06-03) 中运行 Akka 项目,但在安装依赖库时遇到了一些麻烦。我已经安装了akka-actorconfig如下:

  • osgi:install -s mvn:com.typesafe.akka/akka-actor/2.1-SNAPSHOT
  • osgi:install -s mvn:com.typesafe/config/0.4.1

但我无法安装scala-library(需要 v2.9.2)。我曾尝试使用创建自己的捆绑包,maven-bundle-plugin但无济于事,并且已经搜索了很长时间。

任何帮助将不胜感激。

4

3 回答 3

4

如果您正在寻找快速解决方法,请使用 Scala IDE/Eclipse 中的 Scala 2.9.2 捆绑包。我为我的 Akka 2.1/Karaf POC 做到了这一点,它运行良好。如果您没有,请从我的 lib 文件夹中下载它。

于 2012-07-23T19:40:17.077 回答
1

这是在 scala-users 组上发布后上传的:

https://github.com/guofengzh/scala-lang-osgi

于 2012-07-24T07:38:56.253 回答
0

@ben1729 引用的scala-lang-osgi的构建二进制文件现在可以在我们的 Bippo/Soluvas Nexus 存储库公共存储库中获得:http: //nexus.bippo.co.id/nexus/content/groups/public/

随意浏览我们的存储库http://nexus.bippo.co.id/nexus/

用法:

<repository>
    <id>bippo-nexus-public</id>
    <url>http://nexus.bippo.co.id/nexus/content/groups/public/</url>
</repository>

然后将其中一个或全部添加到您的 Maven POM 文件中:

<dependency>
  <groupId>org.scala-lang-osgi</groupId>
  <artifactId>scala-library</artifactId>
  <version>2.9.2</version>
</dependency>
<dependency>
  <groupId>org.scala-lang-osgi</groupId>
  <artifactId>scala-compiler</artifactId>
  <version>2.9.2</version>
</dependency>
<dependency>
  <groupId>org.scala-lang-osgi</groupId>
  <artifactId>scala-dbc</artifactId>
  <version>2.9.2</version>
</dependency>
<dependency>
  <groupId>org.scala-lang-osgi</groupId>
  <artifactId>scala-swing</artifactId>
  <version>2.9.2</version>
</dependency>

请在新版本发布时通知我,以便我可以将较新的工件重新部署到我们的仓库中。

更新: Scala OSGi 2.10-M6现在在我们的存储库中可用:

<dependency>
  <groupId>org.scala-lang-osgi</groupId>
  <artifactId>scala-library</artifactId>
  <version>2.10.0-M6</version>
</dependency>
<dependency>
  <groupId>org.scala-lang-osgi</groupId>
  <artifactId>scala-compiler</artifactId>
  <version>2.10.0-M6</version>
</dependency>
<dependency>
  <groupId>org.scala-lang-osgi</groupId>
  <artifactId>scala-dbc</artifactId>
  <version>2.10.0-M2</version>
</dependency>
<dependency>
  <groupId>org.scala-lang-osgi</groupId>
  <artifactId>scala-swing</artifactId>
  <version>2.10.0-M6</version>
</dependency>

它可以与 Akka 一起使用,但使用修补过的Akka 2.1-M1(请参阅http://www.assembla.com/spaces/akka/tickets/2367-osgi-manifest-references-2-9-2)。

修补后的 Akka 在我们的存储库中可用:(在 Karaf URL 中)

mvn:com.typesafe.akka/akka-actor/2.1-M1/jar/patch2

Akka bug 总结:Akka 2.1-M1 需要 2.10-M6,它不适用于 2.9.2:

Error executing command: Error starting bundles:
nable to resolve 160.0: missing requirement [160.0] osgi.wiring.package; (&(osgi.wiring.package=scala.collection.convert)(version>=2.9.2)(!(version>=2.10.0)))      

但它目前导入了错误的包版本:

    scala.collection.convert;version="[2.9.2,2.10)",
    scala.concurrent.util;version="[2.9.2,2.10)",
    scala.concurrent.util.duration;version="[2.9.2,2.10)",
于 2012-08-09T20:46:45.367 回答