2014-04-18 25 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