2011-12-12 54 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的解決方案,因爲它只需要對任務圖進行一次評估。