假设我们有一个SBT项目bar
依赖于某些工件foo
:
val bar = Project('bar', file('.')).settings( libraryDependencies += "com.foo" % "foo" % "1.0.0" )
但是,在某些情况下,我想检查源代码foo
并让SBT从我的文件系统而不是已发布的工件加载源代码; 这样,我可以对其进行局部更改foo
并立即对其进行测试,bar
而无需发布任何内容.
val foo = Project('foo', file('foo')) val bar = Project('bar', file('.')).dependsOn(foo)
我们spec.json
在根文件夹中有一个文件bar
已经指定是foo
应该从源使用还是作为工件使用.有没有办法设置我的构建来读取此文件并添加dependsOn
或libraryDependencies
基于值spec.json
?"
这样做很容易libraryDependencies
:
val bar = Project('bar', file('.')).settings( libraryDependencies ++= if (containsFoo(baseDirectory.value / "spec.json")) { Seq() } else { Seq("com.foo" % "foo" % "1.0.0") } )
但是,我们找不到任何方法来设置做任何"动态" dependsOn
,比如阅读baseDirectory
SettingKey
.