2015-04-15 82 views
5

我有一個約40個子項目的SBT項目。 有幾個插件,其中最大的是Play和sbt-native-packager。沒有全球插件。慢SBT啓動與許多項目

在一些相當健壯的硬件上,啓動(在第一次之後)需要20-25秒。 我知道這不是全部由於JVM啓動,因爲一個小項目(純開銷)在3-4s內開始。

我如何知道爲什麼sbt需要更長的時間才能開始進行大型項目?

我試過sbt -Dsbt.task.timings = true,但它不包括什麼是佔用大部分時間。最後時刻打印完成後,但在此之前

設置當前項目例如(在建文件:/首頁/保羅/清醒/例子/)

有一個15秒暫停。

如何找到導致啓動緩慢的原因?

回答

1

嘗試創建project/debug.sbt

logLevel := Level.Debug 

,看看你發現了什麼。如果你有project/*.scala,通常是編譯文件的編譯。

+0

SBT文件是否更快?或者它們在一天結束時是否基本上是Scala文件? –

+0

他們也將被編譯。爲了節省時間,應該將其製作成已發佈的插件。 –

+0

「啓動(在第一次之後)」我的意思是所有的項目/ *。scala文件都被編譯。 –