我有多模块sbt(0.13.2)项目
foo
- foo-api
- foo-web
- ...
foo
,每个子目录都有build.sbt
。
Toplevel文件只是一个聚合器:
lazy val fooApi = Project("foo-api", file("foo-api"))
lazy val fooWeb = Project("foo-web", file("foo-web")).dependsOn(fooApi)
// ...
lazy val foo = Project("foo", file(".")).
aggregate(fooApi, fooWeb, ...)
现在我绝对需要(不是我的选择)能够从内部 foo-web
子目录中单独编译foo-web
,它仍然应该依赖于foo-api
。
我很乐意将以下片段添加到foo-web/build.sbt
:
lazy val fooWeb = Project(id = "foo-web", base = file("."))
.in(file("."))
.dependsOn(Project("foo-api", file("../foo-api"))
哪个适用于cd $root/foo-web && play compile
但现在会中断cd $root && play compile
,因为相对路径是相对于执行目录的。
如何使用相对路径引用项目,无论在哪个目录中执行sbt命令?