给出一个简单的项目结构:
+ lib1/
| + build.sbt
+ build.sbt
,其中
./lib1/build.sbt
是:
name := "Library 1"
./build.sbt
是:
lazy val lib1 =
project.in(file("lib1")).settings(name := "Blah blah", version := "1.2.3")
./lib1/build.sbt
中的设置会覆盖build.sbt
中指定的同一项目的设置,因为lib1/name
解析为“图书馆1”而不是“Blah blah”而lib1/version
1}}从sbt控制台解析为“1.2.3”。
我有什么方法可以反过来这样做,以便我可以覆盖./lib1/build.sbt
中./build.sbt
中指定的某些设置吗?
修改:
同样,如果./lib1/build.sbt
只是上面设置的简单列表,我可以在主build.sbt
中执行此操作:
lazy val lib1 = project.in(file("lib1"))
lazy val lib2 = project.in(file("lib2")).dependsOn(lib1)
我可以通过在控制台中检查show lib2/internalDependencyClasspath
来查看它的工作原理,但如果./lib1/build.sbt
是
lazy val lib1 = project.in(file(".")).settings(name := "Library 1")
我无法再在主dependsOn
build.sbt
相关:
SBT: Override setting in multi-build dependsOn/aggregate project