Как разделить значения между 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

Надеюсь, это поможет!

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