我发出sbt publish
命令,并得到提示要求我输入用户名和密码的提示。我可以在build.sbt或其他地方提供它们,所以我不必手动输入它们?
在我的build.sbt文件中,有这个:
publishTo := Some(Resolver.sftp("Server", "url", "port"))
答案 0 :(得分:3)
您可以将凭据放入文件中,并在credentials.sbt
中进行引用,以便sbt
将其加载,并在发布或dependency download时使用它,
STEP1 :设置凭据~/.sbt/1.0/plugins/credentials.sbt
中的文件路径
echo 'credentials += Credentials(Path.userHome / ".sbt" / ".credentials")' > ~/.sbt/1.0/plugins/credentials.sbt
注意: echo some-stuff > some-file
将内容重定向到文件。 echo
是Linux命令
STEP2 :您的~/.sbt/.credentials
看起来像
realm=Artifactory Realm // or Sonatype Nexus Repository Manager
host=server.com // don't put in http:// or https:// protocal
user=your.username.for.server.com
password=password.for.server.com
STEP3 :设置在build.sbt
中发布配置,如下所示:
publishTo in ThisBuild := {
if (isSnapshot.value)
Some("Artifactory Realm" at "server.com" + "/artifactory/libs-snapshot-local")
else
Some("Artifactory Realm" at "server.com" + "/artifactory/libs-release-local")
}
STEP4 :只需运行credentials.sbt
sbt clean compile
被选中
$ sbt clean compile
[info] Loading settings for project global-plugins from idea.sbt,credentials.sbt ...
相关资源:
官方文档:https://www.scala-sbt.org/1.0/docs/Publishing.html
答案 1 :(得分:0)
在日志中仔细查找sbt可能在其中寻找凭据文件的任何位置。例如:无法找到凭证文件/root.ivy2/.credentials。 注意,root和ivy2用点而不是斜杠分隔。如果上面的目录不存在,请创建上述目录,然后将上面所示的凭据放入.credentials文件中,如果操作系统是linux或macos,则可能使用cat。
sbt版本:0.13