I\'m sure I\'m missing something really simple... I want to set the system property java.awt.headless
to true
for my sbt project. Reading the page on p
If I needed this option for all sbt tasks, I'd set it as follows in build.sbt
javaOptions += "-Djava.awt.headless=true"
If it was just for one task, eg: run, you can scope that:
javaOptions in Runtime += "-Djava.awt.headless=true"
A straightforward method would be to edit the batch file or shell script that you use to run sbt
and add -Dprop=val
If you're trying to set SBT properties, like plugin settings, then the following worked for me with 0.13+
. The following however did work, when trying to pass in Liquibase settings, like password, from our CI frameworks.
Ugly, but supplies defaults, and optionally grabs from System.properties. This way you've got your default and override cases covered.
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")
Now just override via -Dprop=value
like you would with Maven or other JVM programs. Note props appear before SBT task.
sbt -Dliquibase.password="shh" -Dliquibase.username="bob" liquibase:liquibase-update