sbt项目中没有play-plugin

时间:2015-06-10 02:40:58

标签: scala playframework sbt

当我使用play框架时,每次我更改代码时,它都会通过重新编译代码自动生效。

然而,当我使用sbt运行没有play-plugin的项目时,它将不会生效。

我想知道是否有办法让sbt项目热插拔更改后的代码。

我的build.sbt如下:

version in ThisBuild := "1.0-SNAPSHOT"

scalaVersion in ThisBuild := "2.11.6"

lazy val `frontend` = (project in file("frontend")).
  enablePlugins(PlayScala).
  enablePlugins(DockerPlugin).
  settings(
    name := "frontend",
    libraryDependencies ++= Dependencies.frontend
  ).dependsOn(`api`).aggregate(`api`)

lazy val `backend` = (project in file("backend")).
  enablePlugins(JavaAppPackaging).
  enablePlugins(DockerPlugin).
  settings(
    name := "backend",
    libraryDependencies ++= Dependencies.backend ++ Seq(cache, ws)
  ).dependsOn(`api`).aggregate(`api`)

lazy val `api` = (project in file("api")).
  settings(
    name := "api",
    libraryDependencies += ws
  )

我在intellij中的配置就像下面的sbt任务一样(我现在无法发布图像):

"project backend" ~run

但是,每次我在后端更改代码时,在我从前端调用后端后它都不会生效。

我想知道如何解决这个问题。谢谢你们的帮助。

3 个答案:

答案 0 :(得分:0)

你可以让sbt通过这样调用来自动重新编译任何更改:     sbt ~compile

答案 1 :(得分:0)

如果使用〜运行,则每次更改时都会编译更改的类并重新运行项目。 如果它不起作用,您可以解释有关您的项目和结构的更多信息。

答案 2 :(得分:0)

打开两个SBT窗口 一个运行~compile,另一个运行~run。 希望它会有所帮助。