【问题标题】:How to use playframework 2.3 with specs2 2.4 instead of specs2 2.3.x如何使用 playframework 2.3 和 specs2 2.4 而不是 specs2 2.3.x
【发布时间】:2014-08-13 07:20:12
【问题描述】:

最近,specs2 已更新到版本 2.4,它现在使用 scalaz 7.1 而不是 7.0.x。一旦我在我的游戏中更新了我的 specs2 依赖项! 2.3 项目使用 2.4 版本,所有测试均失败,以下异常:

 [error] Uncaught exception when running ...Spec: java.lang.In
 compatibleClassChangeError: Found class scalaz.syntax.FunctorOps, but interface
 was expected
 sbt.ForkMain$ForkError: Found class scalaz.syntax.FunctorOps, but interface was
 expected
    at org.specs2.specification.SpecificationStructure$.createSpecificationEither(BaseSpecification.scala:119)
    at org.specs2.runner.SbtRunner.org$specs2$runner$SbtRunner$$specificationRun(SbtRunner.scala:73)
    at org.specs2.runner.SbtRunner$$anonfun$newTask$1$$anon$5.execute(SbtRunner.scala:59)
    at sbt.ForkMain$Run$2.call(ForkMain.java:294)
    at sbt.ForkMain$Run$2.call(ForkMain.java:284)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

以前似乎没有人遇到过这个错误。至少我无法在 specs2 和 play 项目的问题跟踪系统中找到它。

【问题讨论】:

  • 你做了clean吗?你能检查你的依赖项中是否真的有 scalaz 7.1 吗? (你可以使用 sbt 依赖树插件)

标签: specs2 playframework-2.3 scalaz7


【解决方案1】:

我用这个设置让它在 Play 2.3.8 中工作。

  "org.scalaz" %% "scalaz-core" % "7.1.1",
  "com.typesafe.play" %% "play-test" % "2.3.8" % "test" excludeAll(
     ExclusionRule(organization = "org.specs2")
   ),
  "org.specs2" %% "specs2-core" % "3.5" % "test",
  "org.specs2" %% "specs2-junit" % "3.5" % "test",
  "org.specs2" %% "specs2-mock" % "3.5" % "test"

【讨论】:

  • 未指定 "org.scalaz" %% "scalaz-core" % "7.1.1" 也适用于我。这应该是对最后三个依赖项的传递依赖。
【解决方案2】:

"com.typesafe.play" %% "play-test" % "2.3.3" 依赖于 specs2 2.3.12,而 specs2 2.3.12 依赖于 scalaz 7.0.6

您可以/不应该将它们一起使用。因为 scalaz 7.0.67.1.0 是二进制不兼容的。

如果你想同时使用play2和scalaz 7.1,我认为有一些解决方案

【讨论】:

  • 顺便说一句,我还为 scalaz-7.0.6 发布了 specs2 2.4.2 版本:在 Sonatype 上查找 specs2-scalaz-7.0.6。
猜你喜欢
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多