2014-04-18 22 views
1

如果我在Build.scala文件中定義的SBT自定義配置爲這樣:SBT自定義配置與遺傳任務

val custom = config("sam")

,然後我調用內置的任務(是正確的術語?) ,因爲這樣的

sbt sam:test

並自定義配置傳播到其他遺傳任務。例如,並不意味着sbt sam:test

sbt sam:compile sam:test

sbt compile sam:test

或兩者都不是?

回答

1

正如SBT Config extend vs DefaultSettings中所述,您必須將配置明確包含到要使用的項目中。使用SBT 0.13的多項目的語法,它看起來像這樣:

val SamConfig = config("sam") 

val root = (project in file(".")). 
    configs(SamConfig). 
    settings(
    // other settings here. 
) 

,然後我調用內置的任務(是正確的術語?),因爲這樣

sbt sam:test 

自定義配置是否傳播到其他繼承的任務。

test,代表test:test,是一個內置任務;但是,sam:test表示test任務範圍爲SamConfig,這是未定義的。

root> sam:test 
[error] No such setting/task 
[error] sam:test 
[error]  ^

所以沒有在那裏傳播。

+0

好的,我明白了,我將如何獲得sam:test來調用sam:compile? – monkjack