Давайте предположим, что у вас есть два проекта:
1) В /main-project
, у вас есть build.sbt
, содержащий строку name := "main-project-id"
2) В /other-project
, у вас есть build.sbt
, содержащий строку name := "other-project-id"
Вы можете создать зависимость от проекта Main к проекту Other, добавив файл /main-project/project/Build.scala
:
import sbt._
import Keys._
object MainProjectBuild extends Build {
lazy val main = Project(id = "main-project-id", base = file(".")) dependsOn(other)
lazy val other = Project(id = "other-project-id", base = file("other-project"))
}
И затем добавление ссылки на /other-project
внутри /main-project
. Что-то вроде:
cd /main-project
ln -s ../other-project other-project
, так что теперь у вас в каталоге называется other-project
: /main-project/other-project/
.
Сделав это, если вы запустите sbt compile
или что-то еще внутри /main-project
, оно будет работать должным образом.
EDIT
Другой, возможно, более простой способ будет просто создать ссылку на вашу яву, что делает его похожим они находятся в одном каталоге с исходными текстами.
Так что, если ваш код Scala в /main-project/src/main/scala/somepackage/...
и код Java в /other-project/src/main/java/otherpackage/...
, то вы можете сделать:
cd /main-project/src/main
ln -s /other-project/src/main/java java
затем каталог /main-project/src/main/java
просто будет указывать на источник зависимости, но SBT будет строить все вместе.
Хм ... На самом деле необходимо создать еще один build.sbt или просто указать, что каталог работает? Кроме того, действительно ли мне нужно переместить папку в папку «main-project /»? –
@Tiago, Отредактировано с помощью, возможно, более простой идеи – dhg
Я должен позвонить ln все время, я хочу работать? Кажется не проще. И у меня все еще есть проблема, что мне нужно переместить местоположение проекта. Но, скорее, я не хочу усложнять. Я постараюсь перейти в Intellij и посмотрим. Спасибо за оба варианта. –