13

本当に単純なものが欠けていると確信しています... sbtプロジェクトのシステムプロパティjava.awt.headlessをに設定したいと思います。プロパティのページをtrue読むと、またはを使用する必要があると思います。私のプロジェクトファイルでは、次のようなことを試しました。systemsystemOptional

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

これをユーザープロパティ(例lazy val javaAwtHeadless = property[Boolean])として設定し、それに付随する値をで設定するとbuild.properties、プロパティはsbtコンソールでは表示されますが、sbtのScalaコンソールでは表示されません(via System.getProperty("java.awt.headless"))。

set java.awt.headless trueScalaコンソールでの設定を含め、sbtコンソールからは機能しますが、次にsbtを起動したときまで持続しません。

4

3 に答える 3

14

簡単な方法は、実行sbtおよび追加に使用するバッチ ファイルまたはシェル スクリプトを編集することです。-Dprop=val

于 2010-06-27T17:27:22.973 に答える
5

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.

In your build.sbt

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

From the commandline

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

于 2016-06-02T16:31:57.353 に答える