Je suis sûr que je manque quelque chose de vraiment simple ... je veux définir la propriété système le réglage comme une propriété utilisateur (par exemple, java.awt.adless code> à
vrai code> pour mon projet SBT. Lire le page sur les propriétés Je pense que je dois utiliser < Code> Système code> ou
SystemOptional code>. Dans mon fichier de projet, j'ai essayé des choses comme:
Lazy Val Javaawtheadless = Propriété [Boolean] Code>) et réglage de l'accompagnateur Valeur dans
build.properties code> a rendu la propriété visible dans la console SBT mais pas dans la console Scala de SBT (via
System.geProperty ("Java.Awt.Headless") code>). < / p>
Set Java.awt.adless true code> de la console SBT fonctionne, y compris étant défini dans la console Scala, mais cela ne persiste pas à la prochaine fois que je lance SBT. p> p>
3 Réponses :
Une méthode simple serait de modifier le fichier de lots ou le script shell que vous utilisez pour exécuter sbt code> et ajouter
-dprop = val code> p> p>
Oui, mais cela nécessiterait que je modifie mes commandes de lancement SBT sur toutes les machines que je développe sur, plus une impact sur les autres projets que je développe à l'aide de SBT.
Personnellement, je vérifie personnellement le lanceur SBT et le script SBT Shell dans chaque projet, par exemple: Github.com/scalaz/scalaz a>. Vous venez d'essayer system.setproperty ("prop", "val") code> quelque part dans la définition de votre projet? N'oubliez pas que SBT par défaut fonctionne tout dans le même processus, à moins que vous ne demandiez expressément à une fourchette: code.google.com/p/Simple-build-tool/wiki/forking
Ou dans le coffre, System.Props ("PROP") = "VAL". Aaaahh, c'est mieux.
Vous pouvez le faire à travers un plugin dans la coquille. J'ai écrit github.com/mustaghattack/jvm-command qui le fait.
Ou, sans plugin, juste sbt> eval system.setproperty ("foo", "bar") code>
Si j'avais besoin de cette option pour toutes les tâches SBT, je l'ai défini comme suit dans Build.sbt
javaOptions in Runtime += "-Djava.awt.headless=true"
Si vous essayez de définir des propriétés SBT, comme les paramètres de plug-in, les suivants ont fonctionné pour moi avec moche, mais fournit des validations par défaut et s'empare éventuellement de System.properties em>. De cette façon, vous avez vos cas de valeur par défaut et remplacez les cas couverts. P> 0,13 + code>. Ce qui suit a toutefois fonctionné, lorsque vous essayez de transmettre des paramètres Liquibase, comme le mot de passe, de nos cadres CI.
dans votre build.sbt h3>
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")
"Les accessoires de note apparaissent avant la tâche SBT." bon crier, c'était mon problème