sbt 0.11.2如何将~copy-resources与~aux-compile结合起来

jps*_*ain 4 scala sbt xsbt-web-plugin

我正在使用sbt 0.11.2和xsbt-web-plugin 0.2.10构建一个Wicket(1.5.3)应用程序.我正在使用这个版本的Jetty:

"org.eclipse.jetty" % "jetty-webapp" % "8.0.1.v20110908" % "container",

所以,当我这样做

> container:start

我的应用程序启动就好了.

但是如果我改变一些html,那么改变就不会发生,直到我这样做

> copy-resources

和scala源代码更改在我做之前不会反映出来

> aux-compile
(这个很难找到!!)

问题是我希望立即反映这一点.我可以

> ~ copy-resources

要么

> ~ aux-compile    

单独使这一个或另一个将自动保存.

问题是,我没有看到任何明显的方法一方面是因为我不能没有按下回车键率先拿到了命令提示符下输入第二个波浪为前缀的命令,并取消运行波浪命令.

谢谢.


更新:
我发布了一个我想要做的最小例子:https:
//github.com/jpswain/DummySbtScalaWicket.git

我通过运行sbt(0.11.2)来解决这个问题,然后再做

> container:start

因此,您会注意到,如果您执行"~aux-compile"并更改日志语句,或更改标签读取的名称,则会立即更新.如果您执行"~copy-resources"并更改"Hello" - >"Hola",您将看到动态更改.我正在尝试这样做,以便两者都将在保存时完成."〜容器:重装/"似乎什么都不做!

来自@Vasil Remeniuk的答案似乎是正确的方法,除了我还没弄清楚将代码放在哪里以确保其正常工作.(我得到了一个语法错误.)如果有人愿意验证该代码是否有效,或者我的项目有什么问题会阻止它工作,那会很棒吗?

谢谢!!
杰米


最后更新:
感谢@Vasil Remeniuk的建议,我完成了所有这些工作.如果有人需要它来快速启动以使用可重新加载的Jetty容器,只需 从https://github.com/jpswain/DummySbtScalaWicket.git下载它,
然后从目录运行:

$ sbt

一旦sbt出现,请执行以下操作:

> container:start
> ~auxx

Mar*_*rah 14

~ 接受任何命令作为参数,包括命令列表:

~ ;copy-resources;aux-compile
Run Code Online (Sandbox Code Playgroud)

这将在每个触发器上运行copy-resources然后运行aux-compile.

但是,在这种情况下,我更喜欢Vasil的解决方案,因为它只需要对任务图进行一次评估.


Vas*_*iuk 6

您可以创建自己的任务来调用/依赖aux-compilecopy-resources

import sbt._
import Keys._
import com.github.siasia._
import PluginKeys._

object SampleProject extends Build {

  val sampleTask = TaskKey[Unit]("combined")

  val setngs = Seq(
    sampleTask <<= (copyResources in Compile, auxCompile in Compile) map {
      (c, p) =>
    }
  )

  val root = Project("root", file(".")) settings(setngs:_*)

  override val projects = Seq(root)

}
Run Code Online (Sandbox Code Playgroud)

,并不断调用新任务

~combined
Run Code Online (Sandbox Code Playgroud)