Question

Je suis sûr que je manque quelque chose très simple ... Je veux définir la propriété système java.awt.headless à true pour mon projet SBT. La lecture de la page sur les propriétés Je pense que je dois utiliser system ou systemOptional. Dans mon dossier de projet, je l'ai essayé des choses comme:

lazy val javaAwtHeadless = system[Boolean]("java.awt.headless")

Définition comme propriété de l'utilisateur (par exemple lazy val javaAwtHeadless = property[Boolean]) et le réglage de la valeur d'accompagnement dans build.properties fait la propriété visible dans la console SBT, mais pas dans la console Scala de SBT (via System.getProperty("java.awt.headless")).

set java.awt.headless true des travaux de la console SBT, y compris être définis dans la Console Scala, mais il ne persiste pas à la prochaine fois que je lance SBT.

Était-ce utile?

La solution

Une méthode simple serait de modifier le fichier batch ou d'un script shell que vous utilisez pour exécuter sbt et ajouter -Dprop=val

Autres conseils

Si je avais besoin de cette option pour toutes les tâches SBT, je le place suit comme dans build.sbt

javaOptions += "-Djava.awt.headless=true" 

Si c'était juste pour une tâche, par exemple: l'exécution, vous pouvez limiter la portée que:

javaOptions in Runtime += "-Djava.awt.headless=true" 

Si vous essayez de définir les propriétés de SBT, comme les paramètres du plugin, puis ce qui suit travaillé pour moi avec 0.13+. Ce qui suit cependant fait le travail, en essayant de passer des paramètres Liquibase, comme mot de passe, de nos cadres de CI.

Dans votre build.sbt

laid, mais par défaut de fournitures, et saisit éventuellement de System.properties . De cette façon, vous avez votre cas par défaut et override couverts.

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")

De la ligne de commande

Maintenant, juste passer outre via -Dprop=value comme vous le feriez avec Maven ou d'autres programmes de JVM. accessoires Note apparaissent avant tâche SBT.

sbt -Dliquibase.password="shh" -Dliquibase.username="bob" liquibase:liquibase-update

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top