2015-02-11 86 views
33

我创建了一个游戏项目,游戏2.3.7“对象指数不包views.html的一员”,在斯卡拉IDE

在项目目录中打开斯卡拉发挥项目时,我跑激活并运行eclipse命令来生成eclipse项目文件。

当我去日食(我使用Scala的IDE类型安全的,从构建ID:4.0.0-vfinal-20150119-1023类型安全的,有我在Application.scala文件中的错误:

object index is not a member of package views.html 

有什么不对劲我的设置应用程序时,我在激活控制台提示符下执行run运行良好

感谢

编辑:?!增加了代码

package controllers 

import play.api._ 
import play.api.mvc._ 

object Application extends Controller { 

    def index = Action { 
    Ok(views.html.index("Your new application is ready.")) 
    } 

} 

错误在'OK ..'行。

中有意见index.scala.html称为文件和应用程序运行的文件,当我从激活运行它..

+1

你能向我们展示编译器抱怨的代码吗? – 2015-02-11 16:01:58

+0

我怀疑play2插件与scala ide 4不兼容。我将尝试切换到scala ide 3. http://stackoverflow.com/questions/28104968/scala-ide-4-0-0-thinks-theres -out-of-the-box-play-framework-2-3-7 – user384842 2015-02-11 16:39:58

+0

请发表您的'build.sbt' – BAR 2015-02-13 15:54:03

回答

4

我有同样的问题。我在我的Java构建路径中添加了target/scala-2.x/classestarget/scala-2.x/classes_managed,Eclipse停止了抱怨。

+0

只需'classes_managed'为我做了诀窍。 – 2015-03-08 00:02:31

+0

classes_managed在最近的版本中不存在... – Antonin 2016-10-02 13:30:04

8

Scala IDE 4.0.0 thinks there's errors in an out-of-the-box Play Framework 2.3.7 program你可以找到解决方案(简单地说:将target/scala-2.11/twirl/main文件夹加入到编译路径中),试试看。

+0

这适用于我! – Anshul 2015-03-02 18:12:48

+0

将该文件夹添加到Java Build Path> Source中,可从“问题”选项卡中删除原始错误,但又添加了三个:all:“not found:value routes” – einnocent 2015-03-23 01:53:00

+0

我从未发现过这样的错误。但在[这个其他线程](http://stackoverflow.com/questions/18196123/scala-play-not-found-value-routes-eclipse-and-idea)他们讨论同样的问题。难道你的路线文件是空的? – 2015-03-27 08:59:29

12

其他解决方案并不适合我。有些人会给我不同的错误,有些人会清除问题标签,但在views.html.index下留下一个红色的波浪曲线,自动完成功能对scala.html模板不起作用。

什么最后的工作是打开项目的属性,去Java Build Path > Source,并添加以下目录的两种:

target/scala-2.11/src_managed/main 
target/scala-2.11/twirl/main 

如果你只做target/scala-2.11/twirl/main那么你会错过从生成的类文件conf目录。

+1

注意:当你做'sbt eclipse'时,上面的自定义项目属性会被覆盖。我仍然在寻找一个解决方案,将这些目录放到Eclipse类路径中,而不会在该操作中丢失,我怀疑它涉及编辑'build.sbt',但我还不确定。当我找到它时,我会编辑我的答案。 – einnocent 2015-03-26 17:27:27

+0

更新:我现在只是使用IntelliJ w/Scala和SBT插件 – einnocent 2015-12-08 20:23:01

+0

与IntelliJ 2016.1有相同的问题。这个解决方案适合我。 – 2016-04-22 15:28:47

2

我不得不使用默认SBT布局(disablePlugins(PlayLayoutPlugin))运行播放2.4.0-RC1同样的问题,并通过增加build.sbt解决了这个问题:

sourceDirectories in (Compile, TwirlKeys.compileTemplates) := 
    (unmanagedSourceDirectories in Compile).value 
2

添加其为具有views.htmltarget/scala-2.11/twirl/main到源固定为我。

+0

这也解决了我的问题。不知道为什么插件没有找到它。 – Traveler 2015-06-30 20:55:42

0

对于我在将项目导入intellij时确保“检查”“自动导入”复选框的技巧。

25

有时在Play 2.4.x中添加视图后,IntelliJ IDEA有时会感到困惑,并且完全拒绝构建。即使重建项目失败:

enter image description here

这仍然从时间到时间发生在IDEA 15。而当它发生时,命令行提供了最快,最可靠的修复:

sbt clean; sbt compile

就是这样! IDEA现在将按预期编译该项目。

更新:

在极少数情况下sbt compile在命令行成功完成,但IntelliJ IDEA的15仍然给出了同样的“对象X是不是会员”的错误,那么这个解决了IDEA的困惑:

文件菜单:

enter image description here

+2

它为我工作,但直到我在Intellij 15中打开终端,然后用Homebrew(即brew install sbt)安装sbt。在那之后,这个干净的; sbt combile足以使删除错误。谢谢! – 2016-03-16 18:30:52

+1

此解决方案也解决了我的问题。有机会,你是否改变了在重建过程中通过IJ使用的Scala版本?我做了这个,似乎触发了它,要求我使用'sbt clean; sbt编译'从终端。 – 2016-04-10 22:41:53

+0

@ThomasFarvour不是我记得,但记住好主意。最近我还没有看到它(因为我一直在使用IDEA 16.1 EAP)。 – 2016-04-13 22:11:20

1

@布伦特 - 福斯特的回答为我工作,但最初只。每次我从IDEA内重建项目时,我都会在target\scala-2.11\twirl\main\views\html\main.template.scala之内发现“找不到:路由”错误,直到我再次执行布伦特的解决方法。

我最终发现了解决这个正在改变在.iml文件中的一行从

<excludeFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" /> 

<sourceFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" isTestSource="false" /> 

我不知道这样做的长期影响是但它已经解决了这个问题。一些其他类似的问题也可以通过对.iml中列出的其他文件夹应用相同的更改来解决。

0

1)以下行添加到您的sbt.build文件:

EclipseKeys.preTasks := Seq(compile in Compile) 

2)follwing行添加到您的plugins.sbt文件的项目文件夹下:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0") 

3)在播放框架文档中说明,运行“eclipse”命令:

Setting up your preferred IDE

0

基本上我们需要一种方法来将编译好的类放在路径上,以使其工作。

我做了以下修复它。 由于项目编译到target目录。 我去Project Properties - > Java构建路径,并补充说,像这样几个文件夹,

目标/斯卡拉-2.12 /路由/主 目标/斯卡拉-2.12 /捻 目标/斯卡拉-2.12 /漩涡/ main

现在我不希望你假设你也会在你的案例中拥有这些确切的文件夹。这取决于你的项目设置。 但是你应该添加目标/ scala-2.x文件夹内的文件夹。