我正在编写一个需要特定设置的插件: configUrl
如果我指定我的设置build.conf将如下所示:
MyPlugin.configUrl := "http://..../..."
Run Code Online (Sandbox Code Playgroud)
然后我可以使用命令行来执行此操作:
sbt 'set MyPlugin.configUrl := "http://..../..."' performAction
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法可以让我在构建中没有这个设置?
如果我sbt没有设置启动,我会收到以下错误:
[error] Reference to undefined setting:
[error]
[error] *:config-url from *:application-configuration
Run Code Online (Sandbox Code Playgroud)
我搜索谷歌但无法找到在命令行上提供设置的方法,如下所示:
sbt config-url="http://..../..."
Run Code Online (Sandbox Code Playgroud)
如果设置具有默认值,则应在插件中设置该默认值.如果没有,则类型应该是Option[...]默认值None.通常,构建不应该要求从命令行传递要加载的参数.
最后,如果它主要是set您不喜欢的语法,您可以使用系统属性并从您的设置中读取系统属性.但是,这仅限于字符串,因此您失去了类型安全性.
可以通过-Dkey=value命令行(直接或在启动脚本中)设置系统属性:
sbt -Dconfig.url=http://...
Run Code Online (Sandbox Code Playgroud)
(根据你的shell引用).要将此值拉入设置:
MyPlugin.configUrl :=
url(System.getProperty("config.url", "<default>"))
Run Code Online (Sandbox Code Playgroud)
"<default>"如果未设置系统属性,则使用的值在哪里.如果采取这种Option方法,
MyPlugin.configUrl :=
for(u <- Option(System.getProperty("config.url"))) yield
url(u)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3512 次 |
| 最近记录: |