我通过Typesafe Activator创建了一个Play Framework程序(因此它完全遵循模板)。
我使用sbteclipse-plugin
3.0.0版创建了Eclipse项目并将其导入Scala IDE 4.0.0。这些都是撰写本文时的最新版本。
Scala IDE似乎肯定支持Play Framework。它具有自定义格式的语法突出显示,包括路由文件和模板。然而,它似乎无法从控制器中找到视图。特别是,对views.html.index
的调用会触发错误:“对象索引不是包views.html的成员”。
我尝试使用本机挂钩或池化为detailed here来启用刷新,但它没有任何影响。
我应该注意,虽然代码已在命令行中编译(使用activator ~run
),但它尚未在Scala IDE中编译,因为我不知道如何(它似乎不在任何地方记录。
我该怎样做才能摆脱这些错误的错误?
编辑:运行activator clean ~run
后,我有另一个错误:在解决构建路径错误之前,无法构建项目。关于这些构建路径错误的内容没有进一步的细节。
答案 0 :(得分:24)
更新:只需升级到sbteclipse
版本5.1.0
即可,所有内容都可以直接使用。另外,请务必遵循the Play documentation on how to set up Eclipse/ScalaIDE。
sbteclipse
中的a known bug,很快就会will be fixed。
现在,您可以将以下行添加到build.sbt:
EclipseKeys.createSrc := EclipseCreateSrc.All
杀死SBT控制台并再次运行sbt eclipse
。这应该将以下行添加到项目文件夹中的.classpath
文件中作为解决方法:
<classpathentry kind="src" path="target/scala-2.11/twirl/main"/>
刷新Eclipse项目以获取更改。
答案 1 :(得分:12)
我有同样的问题,也是Scala IDE 4.0.0。我遵循了mkurz的指导,他们的工作就像一个魅力。但是,我没有手动更改项目文件夹中的.classpath
文件,而是使用了Eclipse界面:
Project
,然后点击Properties
。Properties
窗口中,点击Java Build Path
选项(选项列表位于左侧)Source
标签中,点击Add Folder...
按钮。Source Folder Selection
窗口中,选择target/scala-2.11/twirl/main
文件夹,以便它包含在编译路径中。点击Ok
按钮。Ok
窗口中的Properties
。现在项目应该编译得很好:)。有了这个,我就能完成the play setup example in Scala IDE website
答案 2 :(得分:4)
我首先尝试了@mkurz解决方案,但也遇到了与@matt相同的错误。我变得很沮丧,因为我无法生成eclipse项目而无需转到Eclipse项目属性来手动修复构建错误。经过一番调查,我发现了完全消除所有错误的解决方案。添加你的build.sbt:
unmanagedSourceDirectories in Compile <+= twirlCompileTemplates.target
如果这对您不起作用,您也可以使用:
unmanagedSourceDirectories in Compile <+= target.zipWith(scalaBinaryVersion) { (b,v) => b / s"scala-$v/twirl/main" }
再见,构建错误!
答案 3 :(得分:0)
我收到了同样的错误消息。 你在eclipse中使用java8作为jre吗? 从java8切换回java7后,一切正常。
答案 4 :(得分:0)
如果按照Mkurz的说明(添加EclipseKeys.CreateSrc ...)后,您的问题仍未解决,请点击Project - &gt;属性 - &gt; Java构建路径。查看源文件夹选项卡。
您可能会找到一个名为... / src_managed / main的重复文件夹(感谢Matt)。如果是这样,请关闭项目。从.classpath文件(位于激活器/ SBT项目目录的基础中)中删除两个../src_managed/main条目中的一个。重新打开并清理项目,你应该好好去。
答案 5 :(得分:0)
对我来说,事实证明Scala IDE中已安装的JRE是openjdk,将其更改为Oracle Java 8并且运行正常。