Можно ли использовать мульти-проекты из GIT в качестве зависимостей SBT?

Я хотел бы использовать banana-rdf в своем проекте, в идеале, определив его как зависимость в build.scala с помощью dependsOn:

lazy val root = Project("root", file(".")) dependsOn RootProject(uri("git://github.com/w3c/banana-rdf"))

Тем не менее, banana-rdf - это мультипроект, поэтому его нужно составлять по-другому. Из того, что я вижу, эти определения мультипроектов позволяют только указывать местоположения проекта в качестве путей к файлам, и не позволяют URI.

Вопрос: Прав ли я, говоря, что мне нужно клонировать эти мультипроектные зависимости GIT в мой проект и ссылаться на них как на папки?

Мне скорее нравится идея оставить все клонирование GIT до SBT, и клонировать их в какую-нибудь папку tmp SBT, а не загромождать мой проект...

1 ответ

Решение

Я все время полагаюсь на подпроекты Banana RDF с ProjectRef, как это:

lazy val core: Project = Project(
  ...
).dependsOn(
  ProjectRef(uri("git://github.com/w3c/banana-rdf.git"), "banana-jena")
)

Особенно приятно то, что вы можете просто прикрепить имя коммита или ветки в качестве идентификатора фрагмента к URI, и все работает точно так, как вы ожидаете.

Другие вопросы по тегам