2015-07-22 47 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