Как указать, что для создания проекта A сначала должен быть построен другой проект B?

Предположим, у одного сотрудника моей компании есть проект sbt под названием commons , который довольно универсален. Этот проект определяется традиционным способом sbt: в основной папке с определением сборки в файле project / Build.scala .

Сейчас какой-то другой парень разрабатывает проект под названием привязка данных , который зависит от общих ресурсов . Мы хотим определить этот проект таким же образом с помощью project / Build.scala .

У нас есть следующая структура каталогов:

dev/
  commons/
    src/
      *.scala files here...
    project/
      Build.scala
  databinding/
    src/
      *.scala files here...
    project/
      Build.scala

Как я могу указать, что привязка данных требует, чтобы сначала были созданы общие объекты и использовались файлы выходных классов?

Я прочитал Сборки с несколькими проектами , и для определения сборки привязки данных ] было предложено следующее:

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 должен быть папкой внутри привязки данных . Но эти два проекта хранятся в отдельных репозиториях git, которые мы не можем вложить.

Как можно правильно указать эту зависимость?

12
задан Jacek Laskowski 1 August 2014 в 19:51
поделиться