pr1*_*001 11 scala project system-properties sbt
我敢肯定,我的思念很简单的东西......我想设置系统属性java.awt.headless
来true
为我的SBT项目.阅读关于属性的页面我认为我需要使用system
或systemOptional
.在我的项目文件中,我尝试过以下内容:
lazy val javaAwtHeadless = system[Boolean]("java.awt.headless")
Run Code Online (Sandbox Code Playgroud)
将其设置为用户属性(例如lazy val javaAwtHeadless = property[Boolean]
)并设置附带的值build.properties
使得属性在sbt控制台中可见,但不在sbt的Scala控制台(via System.getProperty("java.awt.headless")
)中.
set java.awt.headless true
从sbt控制台工作,包括在Scala控制台中设置,但它不会持续到下次我启动sbt.
ret*_*nym 11
一种简单的方法是编辑用于运行sbt
和添加的批处理文件或shell脚本-Dprop=val
如果我需要所有sbt任务的这个选项,我会在build.sbt中设置如下
javaOptions += "-Djava.awt.headless=true"
Run Code Online (Sandbox Code Playgroud)
如果它仅用于一个任务,例如:run,则可以使用以下范围:
javaOptions in Runtime += "-Djava.awt.headless=true"
Run Code Online (Sandbox Code Playgroud)
如果您尝试设置 SBT 属性(例如插件设置),那么以下内容对我有用0.13+
。然而,当尝试从我们的 CI 框架传递 Liquibase 设置(例如密码)时,以下内容确实有效。
丑陋,但提供默认值,并且可以选择从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")
Run Code Online (Sandbox Code Playgroud)
-Dprop=value
现在只需像使用 Maven 或其他 JVM 程序一样重写 via 即可。注意 props 出现在 SBT 任务之前。
sbt -Dliquibase.password="shh" -Dliquibase.username="bob" liquibase:liquibase-update
归档时间: |
|
查看次数: |
14849 次 |
最近记录: |