0

我已经开始使用 Actors,并按照入门指南中提到的一个简单示例进行操作。

规格:Scala 版本:2.9.2

阿卡版本:2.0

我运行了这个例子,它运行得很好。然后我通过sbt构建脚本更改为:

名称:=“PracAkka”

scalaVersion := "2.9.2"

解析器 += “类型安全存储库”,位于“ http://repo.typesafe.com/typesafe/releases/

libraryDependencies += "com.typesafe.akka" % "akka-actor_2.10" % "2.1.2"

即我开始使用Akka 2.1.2. 有一些小的更改,根据迁移指南,我进行了相应的更改。但我仍然收到以下错误:

缺少道具所需的类文件。包反射的引用类型 ClassTag 引用不存在的符号。

我需要改变什么?

4

2 回答 2

1

来自 sbt文档

如果您使用 groupID %% artifactID % revision 而不是 groupID % artifactID % revision (区别是 groupID 后面的双 %%),sbt 会将您项目的 Scala 版本添加到工件名称中。这只是一个捷径。你可以在没有 %% 的情况下写这个:

libraryDependencies += "org.scala-tools" % "scala-stm_2.9.1" % "0.3"

假设您构建的 scalaVersion 是 2.9.1,以下内容相同:

libraryDependencies += "org.scala-tools" %% "scala-stm" % "0.3"

这个想法是为多个 Scala 版本编译了许多依赖项,并且您希望获得与您的项目匹配的那个。

"akka-actor_2.10"在尝试重命名为您的 scala 版本时,您的脚本似乎正在为 scala 2.10 获取 Akka 。

于 2013-04-26T13:42:27.350 回答
1

我想说的文档很清楚:http: //doc.akka.io/docs/akka/2.1.2/project/migration-guide-2.0.x-2.1.x.html

(即 Akka 2.1.x 适用于 Scala 2.10)

于 2013-04-27T00:42:40.813 回答