2011-12-12 46 views
4

我使用sbt 0.11.2和xsbt-web-plugin 0.2.10构建Wicket(1.5.3)应用程序。我使用这个版本的Jetty:sbt 0.11.2如何结合〜复制资源与〜aux-compile

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

所以,当我做

> container:start

我的应用程序启动后就好了。

但是,如果我改变了一些一些HTML的,变化不踢,直到我做

> copy-resources

和Scala源代码的更改不会反映,直到我做

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

问题是,我希望这个立即反映出来。 我可以做

> ~ copy-resources

> ~ aux-compile

分别使一个或另一个会发生在自动保存。

问题是,我没有看到任何明显的方法来执行这两个操作,因为如果不先按Enter键以获取命令提示符,并且取消正在运行的tilde命令,则无法输入第二个tilde-prefixed命令。

谢谢。


UPDATE:
我贴的是什么,我想在这里做一个小例子:
https://github.com/jpswain/DummySbtScalaWicket.git

我这火通过运行SBT(0.11.2),然后做

> container:start

所以,你会发现,如果你这样做“〜AUX编译”,并更改日志声明,或改变由读名称标签,这将在飞行中更新。如果你做“〜copy-resources”并且改变“你好” - >“Hola”,你将会看到在飞行中改变了。我试图做到这一点,这样两个都会在保存时完成。 “〜容器:重装/”似乎什么都不做!

从@Vasil Remeniuk得到的答案似乎是正确的方法,除非我没有弄清楚在哪里放置代码以使其工作。 (我得到一个语法错误。)如果有人请验证该代码是否可以工作,或者如果我的项目出现了错误,会阻止它工作,那将会很棒。

谢谢!
杰米


最后更新:
感谢来自@Vasil Remeniuk的意见,我得到了这一切的工作。如果有人需要它的快速启动与增值的码头集装箱去上班,就从目录中运行下载的 https://github.com/jpswain/DummySbtScalaWicket.git
然后:

$ sbt

一次SBT上来,做到这一点:

> container:start
> ~auxx

回答

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) 

} 

,并调用新任务不断

~combined 
+0

感谢您的回复如此之快!我一定做错了什么。粘贴您写入我的build.sbt文件中的内容时出现语法错误。我也尝试将Build.scala文件放在那里,但也出现了错误。你可以验证语法是正确的吗? (我是这个工具和Scala的新手。)我不明白“map((c,a)=>)”部分。 – jpswain

+0

1)您只能在'Build.scala'中创建新的任务/设置; 2)我的代码是虚拟的 - 具体来说,我对'auxCompile'任务键没有信心(标准SBT只有'compile'任务,对吗? 3)'map((c,a)=>)'评估任务/设置,你在左边传递,所以你可以使用他们的输出。 –

+0

Hi @Vasil Remeniuk!感谢您的回应!你介意看看我在github上发布的mini quickstart项目,看看你有什么建议让我做这个工作吗?我用链接更新了上面的问题。对此,我真的非常感激! – jpswain

14

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

~ ;copy-resources;aux-compile 

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

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