gpt4 book ai didi

sbt - 当构建中没有定义默认值时,在命令行上设置设置值?

转载 作者:行者123 更新时间:2023-12-04 17:58:59 24 4
gpt4 key购买 nike

我正在编写一个需要特定设置的插件:configUrl

如果我在 build.conf 中指定该设置,它将如下所示:

MyPlugin.configUrl := "http://..../..."

然后我可以使用命令行来执行此操作:

sbt 'set MyPlugin.configUrl := "http://..../..."' performAction

有没有更好的方法可以让我在构建中没有该设置?

如果我在没有该设置的情况下启动 sbt,我会收到以下错误:

[error] Reference to undefined setting: 
[error]
[error] *:config-url from *:application-configuration

我搜索了谷歌,但找不到在命令行上提供设置的方法,如下所示:

sbt config-url="http://..../..."

最佳答案

如果设置有默认值,则应在插件中设置该默认值。如果不是,则类型应该是 Option[...]默认为 None .通常,构建不应该要求从命令行传递参数来加载。

最后,如果主要是 set您不喜欢的语法,您可以使用系统属性并从您的设置中读取系统属性。但是,这仅限于字符串,因此您会失去类型安全性。

系统属性可以通过-Dkey=value设置在命令行上(直接或在您的启动脚本中):

sbt -Dconfig.url=http://...

(根据您的外壳的需要引用)。将此值拉入设置:

MyPlugin.configUrl := 
url(System.getProperty("config.url", "<default>"))

在哪里 "<default>"是未设置系统属性时使用的值。如果您采取Option接近,

MyPlugin.configUrl := 
for(u <- Option(System.getProperty("config.url"))) yield
url(u)

关于sbt - 当构建中没有定义默认值时,在命令行上设置设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16939554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com