Я уверен, что мне не хватает чего-то очень простого... Я хочу установить системное свойство java.awt.headless
на true
для моего проекта sbt. Чтение страницы по свойствам Я думаю, что мне нужно использовать system
или systemOptional
. В моем файле проекта я пробовал такие вещи, как:
lazy val javaAwtHeadless = system[Boolean]("java.awt.headless")
Установив его как пользовательское свойство (например, lazy val javaAwtHeadless = property[Boolean]
) и установив сопутствующее значение в build.properties
, свойство было видимым в консоли sbt, но не в консоли sbt Scala (через System.getProperty("java.awt.headless")
).
set java.awt.headless true
из работы консоли sbt, включая установку в консоли Scala, но она не сохраняется в следующий раз, когда я запускаю sbt.
Ответ 1
Простым способом было бы отредактировать командный файл или оболочку script, которые вы используете для запуска sbt
и добавить -Dprop=val
Ответ 2
Если мне нужна эта опция для всех задач sbt, я бы установил ее следующим образом в build.sbt
javaOptions += "-Djava.awt.headless=true"
Если это было просто для одной задачи, например: run, вы можете обладать тем, что:
javaOptions in Runtime += "-Djava.awt.headless=true"
Ответ 3
Если вы пытаетесь установить свойства SBT, такие как настройки плагина, тогда для меня работала с 0.13+
. Следующее, однако, работало при попытке передать настройки Liquibase, такие как пароль, из наших инфраструктур CI.
В вашем файле build.sbt
Ужасно, но поставляет значения по умолчанию и, возможно, захватывает System.properties. Таким образом, у вас есть дела по умолчанию и переопределенные случаи.
def sysPropOrDefault(propName:String,default:String):String = Option(System.getProperty(propName)).getOrElse(default)
liquibaseUsername := sysPropOrDefault("liquibase.username","change_me")
liquibasePassword := sysPropOrDefault("liquibase.password","chuck(\)orris")
Из командной строки
Теперь просто переопределяйте через -Dprop=value
, как и с Maven или другими программами JVM. Перед выполнением задачи SBT появляются реквизиты примечаний.
sbt -Dliquibase.password="shh" -Dliquibase.username="bob" liquibase:liquibase-update