我在this页面上提到的play框架应用程序中添加了过滤依赖项,但是在clean - rebuild中,我的项目仍无法检测到play.filters ...包,它导致编译错误。
我错过了一些非常基本的东西吗?
答案 0 :(得分:1)
这也发生在我的过滤器库中,特别是"com.typesafe.play" % "filters-helpers_2.11" % "2.4.2"
依赖项。
它应该来自Maven2 repo和Typesafe Releases repo。这两个都隐含在SBT的build.sbt文件中,因为它们是predefined repos in SBT。
我的公司使用SSL证书做各种奇怪的事情(他们基本上重新签名)。对于我的情况,我认为真正的问题是激活器不信任证书,因为公司代理/防火墙搞砸了它。我能够通过告诉激活器不使用JVM参数检查证书是否可信来修复它。
要在禁用证书检查的情况下输入激活器shell,只需键入:
activator -Dcom.sun.net.ssl.checkRevocation=false
然后你可以像往常那样compile
或run
,而且即使不是通过可信连接,激活器/ SBT也应该下载依赖项。
注意:我只会这样做很少将一个麻烦的依赖项下载到我的本地缓存中。没有证书检查运行激活器有点不安全,因为下载不受信任的依赖项可能会让您对木马/ MITM攻击开放。
答案 1 :(得分:0)
“clean - rebuild” - 你在使用Eclipse吗?
如果是,那么将eclipse插件添加到播放中(在plugins.sbt
文件中):
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.3")
然后添加到build.sbt
下一个设置:
// Eclipse settings
// Compile the project before generating Eclipse files,
// so that generated .scala or .class files for views and routes are present
EclipseKeys.preTasks := Seq(compile in Compile)
// Java project. Don't expect Scala IDE
EclipseKeys.projectFlavor := EclipseProjectFlavor.Java
// Use .class files instead of generated .scala files for views and routes
EclipseKeys.createSrc := EclipseCreateSrc.ValueSet(EclipseCreateSrc.ManagedClasses, EclipseCreateSrc.ManagedResources)
// End of eclipse settings
然后运行activator eclipse
答案 2 :(得分:0)
这似乎是进口中的错误。我在Eclipse中自动安排了导入,从我的Java类中删除了以下import语句:
导入play.filters.cors.CORSFilter
由于导入不存在,即使激活器在构建时下载依赖项,也无法找到CORSFilter类,因为Eclipse在安排导入时删除了它。我再次添加了导入,虽然它在Eclipse中给出了错误,但找不到play.filters.cors包,但正如预期的那样,它在构建时工作正常。
这看起来很愚蠢,但很难找到,所以如果其他人在将来遇到同样的问题,请在这里分享。