我正在尝试做一个 nexus 工作来发布一个 jar 到 nexus。 我正在将 sbt 与 scala 一起使用,并且我有一个包含所需凭据的配置文件。 我在运行sbt publish
时遇到问题,它给了我未经授权的错误。 我需要能够将我的凭据链接到我的 sbt 版本。 我正在尝试将配置的目标设置为 ~/.ivy2/.credentials
但它似乎不起作用。 有人对如何解决这个问题有任何建议吗?
谢谢。
您可以将所有凭据文件放在一个公共目录中,并添加一个全局配置文件以将所有凭据文件添加到 sbt 中。
~/.sbt/0.13/credentials.sbt
credentials ++= (Path.userHome / ".sbt" / "credentials")
.listFiles
.collect {
case f if f.isFile => Credentials(f)
}
.toSeq
~/.sbt/credentials/my-nexus-repo
realm=Sonatype Nexus Repository Manager
host=mynexusrepo.com
user=username
password=password
~/.sbt/credentials/my-artifactory-repo
realm=Artifactory Realm
host=myartifactoryrepo.com
user=username
password=password
就像在sbt文档中一样:
有两种方法可以为此类存储库指定凭据:
内嵌
credentials += Credentials("Some Nexus Repository Manager", "my.artifact.repo.net", "admin", "password123")
外部文件
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials")
凭据文件是包含密钥领域、主机、用户和密码的属性文件。例如:
realm=My Nexus Repository Manager
host=my.artifact.repo.net
user=admin
password=admin123