Sbt 在生成中未定义默认值时,命令行上设置的设置值?
我正在编写一个需要特定设置的插件:Sbt 在生成中未定义默认值时,命令行上设置的设置值?,sbt,Sbt,我正在编写一个需要特定设置的插件:configUrl 如果在我的build.conf中指定该设置,它将如下所示: MyPlugin.configUrl := "http://..../..." sbt config-url="http://..../..." 然后,我可以使用命令行执行以下操作: sbt 'set MyPlugin.configUrl := "http://..../..."' performAction 有没有更好的方法可以让我不在构建中使用该设置 如果在没有该设置的情况
configUrl
如果在我的build.conf
中指定该设置,它将如下所示:
MyPlugin.configUrl := "http://..../..."
sbt config-url="http://..../..."
然后,我可以使用命令行执行以下操作:
sbt 'set MyPlugin.configUrl := "http://..../..."' performAction
有没有更好的方法可以让我不在构建中使用该设置
如果在没有该设置的情况下启动sbt
,则会出现以下错误:
[error] Reference to undefined setting:
[error]
[error] *:config-url from *:application-configuration
我搜索了google,但找不到在命令行上提供设置的方法,如下所示:
MyPlugin.configUrl := "http://..../..."
sbt config-url="http://..../..."
如果设置有默认值,则应在插件中设置该默认值。如果没有,则类型可能应该是
选项[…]
,默认值为None
。通常,构建不应该只需要从命令行传递参数就可以加载
最后,如果主要是您不喜欢的set
语法,则可以使用系统属性并从设置中读取系统属性。但是,这仅限于字符串,因此您将失去类型安全性
可以通过命令行上的-Dkey=value
设置系统属性(直接或在启动脚本中):
(根据壳牌公司的需要报价)。要将此值拉入设置中,请执行以下操作:
MyPlugin.configUrl :=
url(System.getProperty("config.url", "<default>"))