Scala 代码中看不到旋转模板(喷洒应用程序)
我有一些配置问题,我看不出来。我遵循了最新自述文件中提供的说明,但是编译器没有定义Scala 代码中看不到旋转模板(喷洒应用程序),scala,sbt,spray,twirl,Scala,Sbt,Spray,Twirl,我有一些配置问题,我看不出来。我遵循了最新自述文件中提供的说明,但是编译器没有定义html包 我已经将sbt twirl插件包含在project/plugins.sbt文件中 addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.0.3") 在项目/Build.scala中,我启用了插件 lazy val root = Project(id = "proj", base = file(".")) .enablePlugins(play
html
包
sbt twirl
插件包含在project/plugins.sbt
文件中
addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.0.3")
项目/Build.scala
中,我启用了插件
lazy val root = Project(id = "proj", base = file("."))
.enablePlugins(play.twirl.sbt.SbtTwirl)
.settings(rootSettings: _*)
page.scala.html
放在src/main/twirl
子目录中(直接或使用com/somethin/cool
路径)html
包(或com.somethin.cool.html
),编译器会抱怨它未定义。我可以使用“twirlCompile”命令编译模板,它们可以在target
子目录中正确生成,但它们对主项目不可见
注意:这不是PlayFramework项目
- Scala:2.10.4
- sbt:0.13.6
- 旋转:1.0.3
unmanagedSourceDirectories in Compile += baseDirectory.value / "target" / "yourTwirlGeneratedSources"
然而,这当然不是必要的!我想在运行compile
时,对twirlcomile
的依赖关系也不会得到解决,并且不会从twirl文件生成更新的源代码
您是否尝试过使用以前的twirl+sbt组合?我同样在非播放项目中使用twirl 如果您将文件放在
src/main/com/somethin/cool
中,那么您应该期望在com.somethin.cool.html.page
中找到生成的类
如果您将文件放在src/main/twirl/
中,那么您应该期望在twirl.html.page
Twirl编译器查看它找到的文件,并将“html”(扩展名实际上可能是“txt”或“json”或…)目录放在文件最长的公共子路径下。那么,假设你有:
src/main/com/somethin/cool/page1.scala.html
src/main/twirl/page2.scala.html
然后文件的公共最长子路径是src/main(即类路径的根)。然后您将在以下位置获得这些课程:
html.com.somethin/cool/page1
html.twirl.page2
现在,为了解决“编译器抱怨它未定义”的问题,您可以这么说
如果你是说sbt运行的实际Scala编译器找不到它,我从来没有遇到过这个问题。生成的源文件和.class文件位于target/scala_2.10/twirl/main
下的路径中。在这种情况下,您可能需要更清楚地了解编译器的抱怨和编译类路径
但是,如果您的IDE无法识别源文件,则需要添加目录target/scala_2.10/twirl/main
,作为项目使用的源目录之一
我对Twirl使用的另一个问题是IntelliJ IDEA 14 IDE并不真正支持Twirl编译器,至少在Play项目之外不支持。每当我更新Twirl模板时,我总是要用sbt而不是IntellijIDEA的内置编译器来编译它。JetBrains的人告诉我,他们正在对此进行修复(我已经向他们记录了一个问题)
更新(12/14/14):我记录了JetBrains的问题。它的测试用例是