【发布时间】:2013-12-20 10:03:33
【问题描述】:
假设我们有一个 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)
我们在bar 的根文件夹中有一个spec.json 文件,它已经指定了foo 是应该从源中使用还是作为工件使用。有什么方法可以设置我的构建以读取此文件并根据spec.json 中的值添加dependsOn 或libraryDependencies? '
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。
【问题讨论】:
标签: scala build playframework-2.0 sbt