TwirlKeys.templateImports with Play 未在 IntelliJ IDEA 模板文件中解析

Posted

技术标签:

【中文标题】TwirlKeys.templateImports with Play 未在 IntelliJ IDEA 模板文件中解析【英文标题】:TwirlKeys.templateImports with Play not being resolved in IntelliJ IDEA template files 【发布时间】:2016-05-18 22:24:33 【问题描述】:

我将模板导入设置为导入模板所需的依赖项,但 IntelliJ 没有解决任何依赖项。

模板导入:

模板文件:

这是我的整个 Build.scala:

import play.sbt.PlayImport._
import play.sbt.PlayScala
import play.sbt.routes.RoutesKeys._
import play.twirl.sbt.Import.TwirlKeys
import sbt._
import sbt.Keys._

object Build extends Build 
    lazy val core = Project(id = "core", base = file(".")).settings(
    name := "core",
    version := "0.1",
    scalaVersion := "2.11.6",
    libraryDependencies ++= Seq(
        jdbc,
        cache,
        ws,
        filters,
        specs2 % Test,
        "com.typesafe.play" %% "anorm" % "2.4.0",
        "mysql" % "mysql-connector-java" % "5.1.27",
        "org.apache.commons" % "commons-lang3" % "3.3.2",
        "com.googlecode.xmemcached" % "xmemcached" % "2.0.0",
        "com.amazonaws" % "aws-java-sdk-s3" % "1.10.49",
        "io.argonaut" %% "argonaut" % "6.0.4",
        "com.sksamuel.scrimage" %% "scrimage-core" % "2.1.2",
        "javax.mail" % "mail" % "1.4.7",
        "io.fastjson" % "boon" % "0.31",
        "net.debasishg" %% "redisclient" % "2.13",
        "com.mohiva" %% "play-html-compressor" % "0.5.0" exclude("rhino", "js"),
        "com.yahoo.platform.yui" % "yuicompressor" % "2.4.7" exclude("rhino", "js"),
        "com.github.jreddit" % "jreddit" % "1.0.2",
        "com.notnoop.apns" % "apns" % "1.0.0.Beta6",
        "com.sksamuel.scrimage" %% "scrimage-canvas" % "1.4.2"
    ),
    resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases",
    doc in Compile <<= target.map(_ / "none"),
    routesGenerator := InjectedRoutesGenerator,
    TwirlKeys.templateImports += "core.data.db.models._",
    unmanagedResourceDirectories in Test <+=  baseDirectory ( _ /"target/web/public/test" )
    ).enablePlugins(PlayScala)

我已验证所有包裹路线都是正确的。我该如何解决这个问题?

【问题讨论】:

你能附上整个 build.sbt 吗?也许您稍后会覆盖变量Twirlkeys.templateImports,如下所示:***.com/questions/21118797/… 您是否为 SBT 启用了自动导入(首选项 > 构建、执行、部署 > 构建工具 > SBT - 有一个复选框)?如果是,您是否尝试过使缓存无效? (文件 > 使缓存无效/重新启动) @mgosk 我已经编辑了这个问题。奇怪的是我可以很好地运行服务器,所以正在导入,只是不在 IntelliJ 中 @lpiepiora 是的,这两件事我都试过了。 您使用的是 intellij IDEA Ultimate 还是社区? 【参考方案1】:

为了让 intellij IDEA 帮助开发模板,您需要 Intellij IDEA Ultimate 并更新了最新的 Scala 插件。 https://www.jetbrains.com/idea/features/

还要确保在设置中启用 Play 2 编译器

它应该在你的 build.sbt 中不需要任何特殊配置就可以工作

作为参考,您可以创建一个新的 Play2 项目并查看模板是否正常工作 https://www.jetbrains.com/idea/help/getting-started-with-play-2-x.html

通过此设置,您可以使用 TwirlKeys.templateImports 来避免将导入添加到所有模板中。

【讨论】:

以上是关于TwirlKeys.templateImports with Play 未在 IntelliJ IDEA 模板文件中解析的主要内容,如果未能解决你的问题,请参考以下文章