Предположим, у одного парня в моей компании есть проект sbt под названием commons
, который довольно общего назначения. Этот проект определяется традиционным способом sbt: в главной папке с определением сборки в project/Build.scala
файле.
Теперь какой-то другой парень разрабатывает проект под названием databinding
, который зависит от commons
. Мы хотим определить этот проект таким же образом, с project/Build.scala
.
У нас есть следующая структура каталогов:
dev/
commons/
src/
*.scala files here...
project/
Build.scala
databinding/
src/
*.scala files here...
project/
Build.scala
Как я могу указать, что databinding
требует, чтобы commons
сначала был собран и использовать файлы выходных классов?
Я прочитал Многопроектные сборки и предложил следующее для определения сборки databinding
:
object MyBuild extends Build {
lazy val root = Project(id = "databinding", base = file(".")) settings (
// ... omitted
) dependsOn (commons)
lazy val common = Project(id = "commons",
base = file("../commons")
)
}
За исключением того, что он не работает: sbt не нравится ..
и выдает ошибку AssertionError. Очевидно, commons
должна быть папкой внутри databinding
. Но эти два проекта хранятся в отдельных репозиториях git, которые мы не можем вкладывать.
Как правильно определить эту зависимость?