`enablePlugins` 方法使用的未定义变量?

Posted

技术标签:

【中文标题】`enablePlugins` 方法使用的未定义变量?【英文标题】:An undefined variable used by `enablePlugins` method? 【发布时间】:2015-02-13 07:11:25 【问题描述】:

我的build.sbt 看起来像这样:

lazy val root = (project in file(".")).enablePlugins(PlayScala)


name := "slick"

version := "1.0"

scalaVersion := "2.11.4"

libraryDependencies ++= Seq(
  "com.typesafe.slick" %% "slick" % "2.1.0",
  "org.postgresql" % "postgresql" % "9.3-1102-jdbc4",
  "org.slf4j" % "slf4j-simple" % "1.6.4"
)

project/plugins.sbt 看起来像这样:

resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.6")

// web plugins

addSbtPlugin("com.typesafe.sbt" % "sbt-coffeescript" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-jshint" % "1.0.1")

addSbtPlugin("com.typesafe.sbt" % "sbt-rjs" % "1.0.1")

addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")

addSbtPlugin("com.typesafe.sbt" % "sbt-mocha" % "1.0.0")

在我的build.sbt 的第一行,我看到了这样的代码:

lazy val root = (project in file(".")).enablePlugins(PlayScala)

我无法理解的是PlayScala,它应该是一个未定义的变量。但是当我使用 sbt 构建项目时,sbt 并没有抱怨这一点。有人对此有想法吗?

【问题讨论】:

Why does sbt report "not found: value PlayScala" with Build.scala while build.sbt works? 的可能重复项 @DanielOlszewski 我不认为这是一个重复的问题。如果我理解正确,OP 是在询问 PlayScala 首先是如何在 build.sbt 中导入的。 【参考方案1】:

我看不懂的是PlayScala,它应该是一个未定义的变量。

见Controlling the import with autoImport。

当自动插件提供了一个稳定的字段,例如 val 或名为 autoImport 的对象时,该字段的内容是在 set、eval 和 .sbt 文件中导入的通配符。

【讨论】:

以上是关于`enablePlugins` 方法使用的未定义变量?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在使用静态方法时取消引用 nullptr 而不是 C++ 中的未定义行为?

使用 AJAX 刷新 Rails 部分时的未定义方法

使用关系的未定义方法“index_path”

无法使用附件 gem 上传种子数据“对象的未定义方法 `photos_urls='”

Cmake:对包含方法的未定义引用

nil 的未定义方法“名称”:自定义 slug 的 NilClass