2013-10-10 62 views
4

我偶爾會玩Scala分支,有時需要在SBT項目上調試這些分支。一般來說,scalaHome的效果很好,但有一些我希望找到更好的方法來實現。使用sbt與自定義Scala構建

1)是否有可能讓SBT拿起由ant quick構建的自定義scalac類文件而不是由ant pack構建發出的jar文件?後者意味着每次構建需要5-10秒的額外延遲,所以避免它會很好。 2)即使在大型項目中,scalac展示的問題通常在編譯單個文件時顯現出來。有沒有辦法告訴sbt忽略跟蹤啓發式變化並重新編譯一個文件?當我重新編譯scalaHome或更改scalac標誌時,我特別想防止的是重新編譯整個世界。

3)當scalaHome得到重新編譯時,是否有可能有來自scalaHome的sbt熱重載scalac類?目前我必須關閉並重新啓動sbt才能應用更改。

+1

你能提供一個示例sbt構建文件來展示問題嗎?據我所知,'quick'不是一個標準的sbt命令,所以你可能在那裏有一個插件,這將有助於知道哪一個...... – Jean

+1

對不起。我的意思是'scalac'構建的'quick' ant任務,它產生構成編譯器的類文件,而不是'pack'任務將這些類文件打包到'scala-compiler.jar'中。我更新了這個問題,以便更加精確。 –

回答

3

1)不,這將使sbt依賴於Scala構建的細節。如果Scala是用sbt構建的,那麼您可以依靠Scala作爲源依賴項,或者至少可以在沒有太多更改的情況下支持它。

2)不,見https://github.com/sbt/sbt/issues/604

3)SBT 0.13應該檢查從scalaHome來的罐子的最後修改時間和使用一個新的類加載器。如果沒有,這是一個錯誤。