gpt4 book ai didi

scala - 如何在 build.sbt 中使用环境变量?

转载 作者:行者123 更新时间:2023-12-03 21:28:31 27 4
gpt4 key购买 nike

我想在使用 built.sbt 时使用环境变量来传递我的 repo 凭据。

我已经尝试过这样的事情,但没有找到细节。

credentials += Credentials("Some Nexus Repository Manager", "my.artifact.repo.net", System.getenv("USERNAME"), System.getenv("PASSWORD"))

我还尝试了 ~/.sbt/下的凭据文件,但我不确定如何向其中添加环境变量。

如果我只是在凭据文件中正常输入我的用户名和密码,它就可以正常工作,所以我知道登录详细信息没问题。

额外的:
在运行 sbt compile 之前,我在 shell 中获取环境变量。

运行
credentials += Credentials("Realm", "my.artifact.repo.net", sys.env("USERNAME"), sys.env("PASSWORD"))

导致禁止的 url 错误。

我应该说我一直在尝试解决依赖关系

更新:
以下返回正确的值
eval scala.sys.env("ARTIFACTORY_USERNAME")

但是当我将它添加到我的脚本中时
val username = scala.sys.env("ARTIFACTORY_USERNAME")
val password = scala.sys.env("ARTIFACTORY_PASSWORD")
credentials += Credentials("Artifactory Realm", "artifactory.link.io", username, password)

resolvers ++= Seq(
"Artifactory Snapshot" at "https://artifactory.link.io/art/libs-snapshot"
)

或者
credentials += Credentials("Artifactory Realm", "my.artifact.repo.net", sys.env("ARTIFACTORY_USERNAME"), sys.env("ARTIFACTORY_PASSWORD"))   

我收到一个 FORBIDDEN URL 错误,这表明 Scala 部分运行正常,但由于某种原因,凭据仍然不正确。如果我在 build.sbt 中明确设置凭据,它就可以工作。

最佳答案

您可以使用提到的其他响应的命令获取 env 变量,例如:

sys.env.get("USERNAME")
sys.env.get("PASSWORD")

但它们返回一个 Option[String] 类型的选项

要将其转换为字符串,您需要进行匹配或简单地使用
sys.env.get("USERNAME").get
sys.env.get("USERNAME").getOrElse("some default value")

如果您需要设置一些默认值。警告!调用没有值的选项的 .get 会给你一个运行时错误。

关于scala - 如何在 build.sbt 中使用环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43660137/

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