Как разделить значения между build.sbt и assembly.sbt
Я использую два файла для моей сборки: build.sbt и assembly.sbt (для сборки толстых фляг с использованием плагина sbt-assembly). У меня есть некоторые значения, определенные в build.sbt. Скажем так, я делаю некоторые пользовательские задачи, которые зависят от них. Однако я заметил, что значения, определенные в build.sbt, не видны в assembly.sbt. В итоге я дублирую код в этих двух файлах. Как мне настроить его так, чтобы assembly.sbt мог видеть значения в build.sbt?
Спасибо!
1 ответ
В настоящее время Валь в *.sbt
файлы должны быть разделены пространством имен. Мы обсуждали достоинства наличия глобального пространства имен или нет, но, в конце концов, их разделение делает вещи более согласованными.
"Sbt" способ поделиться значениями и настройками между build.sbt состоит в следующем:
- Создать плагин, который делает это.
- Создайте "библиотеку" в
project/
каталог, который делает это.
Для варианта № 2 вы можете сделать следующее:
Проект / lib.scala
package mylib
object MyStuff {
val foo = "hi"
}
build.sbt
import mylib.MyStuff
// Just reference .scala code from the project/ directory.
name := MyStuff.foo
Надеюсь, это поможет!