簡體   English   中英

沒有播放插件的sbt項目中的熱交換

[英]hot swap in sbt project without play-plugin

當我使用播放框架時,每次更改代碼后,它將通過重新編譯代碼自動生效。

但是,當我使用sbt運行沒有播放插件的項目時,它不會生效。

我想知道是否有一種方法可以使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

但是,每次我在后端中更改代碼時,從前端調用后端后,它都不會生效。

我想知道如何解決這個問題。 謝謝你們的幫助。

您可以通過如下方式調用sbt來自動重新編譯任何更改: sbt ~compile

如果您使用〜run,則每次更改后,都會對更改的類進行編譯,並再次運行項目。 如果它不起作用,您可以解釋有關您的項目和結構的更多信息。

打開兩個SBT窗口。
一個運行~compile ,另一個運行~run 希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM