2015-07-22 70 views
2

sbt提供了許多不同的configurationsCompile,Test,Runtime等。默認情況下,Test取決於RuntimeRuntime取決於Compile,這意味着Test取決於Compile使默認sbt配置依賴於另一個

在我的項目中,我添加了一個自定義配置,我們稱之爲Generators。我想使Generators取決於Compile,因此Test取決於Generators

實例化Generators配置時,可以輕鬆實現這一點。

lazy val Generators = config("generators") extend(Runtime) 

有沒有一種方法,使Test取決於Generators因爲Test爲SBT提供。是否可以修改或以某種方式覆蓋?

回答

1

我實際上在Typesafe上與某人談過這件事,看起來你運氣不好。內置測試配置的語義被設置爲石頭,因爲它被設置爲模仿Maven中的測試範圍,並且測試框架等被寫入期望的確切行爲。

即使我們能夠以某種方式破解它,它可能需要添加一個虛假的測試配置實例,並撤消JvmPlugin添加的所有測試配置(由sbt添加的默認行爲),這可能會意外後果。

說了這麼多,你可以修改什麼SBT的行爲會做,當你鍵入「測試」入殼,你可以通過實現:

test := { println("foo") } 

test := (test in X).value