2012-11-30 54 views
6

我和sbt,Scala構建工具一起很好。如果你在代碼中只有小問題,那很簡單。如何用sbt編譯一些文件?

現在,在添加了一個主要功能之後,我的很多代碼都被破壞了,我似乎對依賴關係是如何混淆了。我可以幫助它,首先編譯基本模塊,但它似乎沒有讓我。

它的幫助系統是......臭名昭着的。

> help compile 
Compiles sources. 

是的,好吧。我猜到了。

我想聽到的是:如何編譯只 - 說 -​​。

這可能不可能(你好,make,從來沒有放棄過你!)。至少在互聯網上找不到任何關於將sbt compile僅用於單個文件的參考。

我從命令行提示符使用sbt,而不是IDE。

UPDATE:

這是我的錯。 :/已將源文件拆分爲多個,但忘記將package子句複製到每個新子文件。 Oooops。

由於只編譯一個文件(即像sbt compile filename這樣的東西)會不會是一件壞事,會保持這段時間。

+0

可否請你加SBT的相關輸出?出了什麼問題?你是否嘗試過首先執行'clean'? – drexin

+0

有5頁的sbt輸出,我不習慣把它放在這裏。通常情況下,sbt似乎是從最小的依賴部分開始的,但是現在錯誤是相互交叉引用的,所以很難說,從哪裏開始解開整個問題。我的錯,很可能,但這個工具確實阻礙了我們現在的理解。即StationBase:沒有找到StateBase; StateBase:找不到StationBase(因爲目前沒有編譯)。 – akauppi

+0

您可以將輸出粘貼到http://pastie.org/並鏈接到此處。 – drexin

回答

4

你可以定義一個Multi-Project Build你想分別編譯的文件封裝在一個項目中。根據文檔,以下是可能的:

在sbt交互式提示符處,輸入projects以列出您的項目和項目以選擇當前項目。當你運行像編譯這樣的任務時,它會在當前項目上運行。所以你不一定要編譯根項目,你只能編譯一個子項目。

+1

給予誠實的回答+1。 Pheeww ..和SBT應該是..簡單? :d – akauppi