2013-03-22 40 views
5

在SBT中,只要源文件發生更改,就可以使用「〜」標記觸發操作。例如,Scala SBT:在本地依賴關係發生變化時觸發操作

sbt> ~test 

將在源更改時運行單元測試。

是否有觸發動作,每當源改變本地依賴任何變化好方式?當同時開發兩個項目時,這將非常有用,其中一個取決於另一個。

我知道你可以手動指定一個filethe base project的路徑得到這個行爲,但這是脆,SBT已經知道它是越來越本地文物,所以這件事情我想避免的。

回答

1

Triggered Execution的文檔中,watchSources任務是您可以添加要觀看的其他文件的位置。

another question開始,managedClasspath任務提供了來自託管依賴關係的部分類路徑。

接着,下面的定義增加了管理測試類路徑的文件,以觀察觸發執行:

watchSources <++= 
    (managedClasspath in Test) map { cp => cp.files } 

在要觸發每個項目進行定義。

+0

我正在使用命令「〜compile」得到一個明顯的無限循環。 – emchristiansen 2013-03-23 02:55:50

+0

你的意思是在sbt代碼中有一個循環,或者在沒有任何變化或其他東西時繼續進行重新觸發?其他一些可能相關的信息:您使用的是什麼版本和插件? – 2013-03-23 12:53:27

+0

下面是一個例子:https://github.com/emchristiansen/WatchDependenciesInfiniteLoop – emchristiansen 2013-03-23 19:03:52