SBT凭证配置应该放在哪里?

时间:2018-03-08 13:22:27

标签: sbt

我正在Windows上运行SBT 1.1.1。

如果我在build.sbt中添加以下行,我的构建就可以了:

credentials += Credentials(Path.userHome / ".sbt" / ".credentials")

麻烦的是,我并不特别想在我的项目中留下这种特定于机器的配置。另外,为了使用g8模板,我需要有一个可用的全局配置。

但是如果我将相同的文字放在以下目录中名为 credentials.sbt 的文件中,它似乎无效。

  • %USERPROFILE%/。SBT / 1.1 /插件/ credentials.sbt
  • %USERPROFILE%/。SBT / 1.1 / credentials.sbt
  • %USERPROFILE%/。SBT /插件/ credentials.sbt

那么这个文件应该放在哪里?

无论我将该文件放入哪个位置,都会出现以下错误:

C:\workspace\tmp>c:\apps\sbt-1.1.1\bin\sbt.bat new sbt/scala-seed.g8
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
[info] Loading settings from credentials.sbt ...
[info] Loading global plugins from C:\Users\NBKA0O5\.sbt\1.0\plugins
[info] Updating ProjectRef(uri("file:/C:/Users/NBKA0O5/.sbt/1.0/plugins/"), "global-plugins")...
[error] Unable to find credentials for [Artifactory Realm @ artifactory.company.com].
[error] Unable to find credentials for [Artifactory Realm @ artifactory.company.com].

我知道我的凭据一定很好,因为我首先使用完全相同的凭据来启动SBT。

奇怪的是,即使我正在运行sbt-1.1.1,它似乎也想要从%USERPROFILE%\.sbt\1.0\plugins加载插件 - 这对我来说没什么意义,版本号不匹配。即使我知道正在读取文件,我仍然会收到错误消息。

1 个答案:

答案 0 :(得分:4)

  

奇怪的是,即使我正在运行sbt-1.1.1,它似乎也想要从%USERPROFILE%.sbt \ 1.0 \ plugins加载插件 - 这对我来说没什么意义,版本号没有比赛。

有关此问题,请参阅sbt/sbt#3858。您应该将凭证文件放在~/.sbt/1.0/credentials.sbt中(与任何其他全局设置相同)。

另请注意credentials是一个自sbt 1.0以来的任务,因此如果您必须将实际凭据存储在其他地方(环境变量或从另一个文件解析),每次它都应该重新评估。正在使用。