问题描述
我正在使用 sbt 0.11.2 和 xsbt-web-plugin 0.2.10 来构建 Wicket (1.5.3) 应用程序.我正在使用这个版本的 Jetty:
I'm using sbt 0.11.2 with xsbt-web-plugin 0.2.10 to build a Wicket (1.5.3) app. I'm using this version of Jetty:
"org.eclipse.jetty" % "jetty-webapp" % "8.0.1.v20110908" % "container",
所以当我这样做时
> container:start
我的应用启动正常.
但是,如果我更改了一些 html,直到我更改后才会生效
But if I change some some of the html, the change does not kick in until I do
> copy-resources
在我这样做之前不会反映 scala 源代码更改
and scala source code changes are not reflected until I do
> aux-compile
(这个好难找!!)
问题是我希望立即反映这一点.我可以的
The problem is that I want this to be reflected immediately. I can do
> ~ copy-resources
或
> ~ aux-compile
分开这样一个或另一个会在保存时自动发生.
separately so that one or the other will happen on save automatically.
问题是我看不到任何明显的方法可以同时执行这两种操作,因为如果不先按 Enter 键以获取命令提示符,我就无法输入第二个带波浪号前缀的命令,这会取消正在运行的波浪号命令.
The problem is that I don't see any obvious way to do both because I can't enter a 2nd tilde-prefixed command without pressing the enter key first to get the command prompt, and that cancels the running tilde command.
谢谢.
更新:
我在这里发布了一个我正在尝试做的最小示例:
https://github.com/jpswain/DummySbtScalaWicket.git
我通过运行 sbt (0.11.2) 来启动它,然后执行
I fire this up by running sbt (0.11.2), and then doing
> container:start
因此,您会注意到,如果您执行~aux-compile"并更改日志语句,或更改标签读取的名称,则会即时更新.如果您执行~copy-resources"并更改Hello"->Hola",您将看到动态更改.我正在努力做到这一点,以便两者都可以在保存时完成."~container:reload/" 似乎什么也没做!
So you will notice that if you do "~aux-compile" and change a log statement, or change the name that is read by the label, that will be updated on the fly. If you do "~copy-resources" and change "Hello" -> "Hola" you will see that changed on the fly. I'm trying to make it so that both will be done on save. "~container:reload /" seems to do nothing!
@Vasil Remeniuk 的答案似乎是正确的方法,但我还没有弄清楚将代码放在哪里才能使其正常工作.(我得到一个语法错误.)如果有人能验证该代码是否可以工作,或者我的项目有什么问题会阻止它工作,那就太好了?
The answer from @Vasil Remeniuk seems like the right approach, except I haven't figure out exactly where to put the code to make it work. (I get a syntax error.) It would be great if someone would please verify if that code will work, or if I'm doing something wrong with my project that would prevent it from working?
谢谢!!
杰米
最终更新:
感谢@Vasil Remeniuk 的建议,我完成了所有这些工作.如果有人需要它来快速开始使用可重新加载的 Jetty 容器,只需在 https://github.com 下载它/jpswain/DummySbtScalaWicket.git
然后从目录运行:
FINAL UPDATE:
Thanks to the advice from @Vasil Remeniuk I got all this working. If anyone needs it for a quickstart to work with reloadable Jetty container, just download it at https://github.com/jpswain/DummySbtScalaWicket.git
and then from the directory run:
$ sbt
一旦 sbt 出现,执行以下操作:
once sbt comes up, do this:
> container:start
> ~auxx
推荐答案
您可以创建自己的任务,调用/依赖于 aux-compile
和 copy-resources
You can create your own task that calls/depends on aux-compile
and copy-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)
}
,并不断调用新任务
~combined
这篇关于sbt 0.11.2 如何将 ~copy-resources 与 ~aux-compile 结合起来的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,WP2