Я думаю, что вам доступны две опции
Первый вариант - это многофайловая структура проекта, которая у вас уже есть
build.sbt
:
val sub = (project in file("sub"))
val root = (project in file("."))
Примечание: Ни одна из приведенных выше строк не является обязательной.Они определены просто для представления некоторой возможной дополнительной логики, такой как aggregate
.
и sub/build.sbt
с содержимым
val root = (project in file("..")) //Note that ".." is used to refer to root project folder
val combinedPath = TaskKey[String]("combinedPath")
combinedPath := {
target.value.getAbsolutePath + baseDirectory.in(root).value.getAbsolutePath
}
Второй - объединить все файлы build.sbt
в один build.sbt
в корневом проекте с содержанием
val combinedPath = TaskKey[String]("combinedPath")
val sub = (project in file("sub"))
.settings(
combinedPath := {
target.value.getAbsolutePath + baseDirectory.in(root).value.getAbsolutePath
}
)
lazy val root = (project in file("."))
Определение задачи combinedPath
выполняется в settings
проекта sub
и может ссылаться на baseDirectory.in(root)
из root
.