当我使用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
但是,每次我在后端更改代码时,在我从前端调用后端后它都不会生效。
我想知道如何解决这个问题。谢谢你们的帮助。
答案 0 :(得分:0)
你可以让sbt通过这样调用来自动重新编译任何更改:
sbt ~compile
答案 1 :(得分:0)
如果使用〜运行,则每次更改时都会编译更改的类并重新运行项目。 如果它不起作用,您可以解释有关您的项目和结构的更多信息。
答案 2 :(得分:0)
打开两个SBT窗口
一个运行~compile
,另一个运行~run
。
希望它会有所帮助。