我有一个非常简单的应用程序,我想使用Deadbolt从2.1.x升级到2.3.0。尽管Deadbolt尚未正式针对2.3.x发行,但2.2.x的版本应该足够好(而且,此错误在2.2.x上发生)。

我在模板中有一个简单的检查,是否存在主题

@subjectPresent() { <p>Hi</p> }


但是我遇到了编译器错误

bad symbolic reference. A signature in subjectPresent.class refers to term templates in package play which is not available.
It may be completely missing from the current classpath, or the version on the classpath might be incompatible with the version used when compiling subjectPresent.class.


现在,这似乎指向某种路径问题,但是我不确定如何解决它。

我的build.sbt有合适的解析器

resolvers += Resolver.url("Objectify Play Repository", url("http://schaloner.github.io/releases/"))(Resolver.ivyStylePatterns),
    resolvers += Resolver.url("Objectify Play Snapshot Repository", url("http://schaloner.github.io/snapshots/"))(Resolver.ivyStylePatterns)


并声明依赖

val appDependencies = Seq(
     // .....
  "be.objectify" %% "deadbolt-java" % "2.2.1-RC2"




有什么建议么?

最佳答案

我猜当前用于升级到Play 2.3.0的showstopper问题是:https://github.com/schaloner/deadbolt-2/issues/47。至少在我看来。我会先等待它修复并发布,然后再花更多时间进行升级。

我建议暂时正确完成对Play 2.2.x的升级,以使您知道自己现在没有尝试某些不可能的事情。这次升级对我们的项目来说是非常痛苦的,对您来说是一个很好的检查点。

编辑:现在尝试使用刚刚发布的新版本,该版本应支持Play! 2.3.0:

“ be.objectify” %%“ deadbolt-java”%“ 2.3.0-RC1”

07-26 02:15