具有多个领域的SBT凭证文件

Rik*_*Rik 5 credentials sbt

我们运行一个神器服务器,它已移动到另一个端点(artifactory-b.example.com).为了使其向后兼容,旧的url(artifactory-a.example.com)被代理到新的url().

但是,使用sbt发布时会使用.ivy2/.credentials具有以下布局的文件

realm=Artfactory realm
host=artifactory-a.example.com
user=artifactory-user
password=P4ssw0rdH4sh
Run Code Online (Sandbox Code Playgroud)

但是,我想改变它,所以新的构建将发布到正确的端点

realm=Artfactory realm
host=artifactory-d.example.com
user=artifactory-user
password=P4ssw0rdH4sh
Run Code Online (Sandbox Code Playgroud)

是否可以在一个文件中添加多个域?那个sbt将尝试第一个,如果它不起作用(Forbidden | Not Found)第二个?所以我的.ivy2/.credentials文件看起来像

# old instance for backwards compatibility
realm=Artfactory realm
host=artifactory-a.example.com
user=artifactory-user
password=P4ssw0rdH4sh

# New spiffy instance
realm=Artfactory realm
host=artifactory-b.example.com 
user=artifactory-user
password=P4ssw0rdH4sh
Run Code Online (Sandbox Code Playgroud)

任何人有这方面的经验,或者我必须使用两个文件,并将我的仓库中的引用更改为第二个文件(即.ivy2/.credentials2).

PS领域位于文件中,因为多个repos使用这些凭据进行发布.这里非常重要的是,领域具有相同的名称,只有不同的端点(与此帖不同):

you*_*ans 8

可能在凭证文件中没有多个领域,但是您可以在多个凭证文件中拥有多个领域,每个领域都在一个凭证文件中.

~/.ivy/.credentials将是:

realm=Sonatype Nexus Repository Manager
host=mvn.nexus1.org
user=readonly
password=readonlyPass
Run Code Online (Sandbox Code Playgroud)

并将在~/.ivy/.credentials.deploy:

realm=Sonatype Nexus Repository Manager
host=deploy.nexus2.org
user=deployment
password=deploymentPass
Run Code Online (Sandbox Code Playgroud)

那么你将在你的build.sbt:

credentials += Credentials(Path.userHome / ".ivy2" / ".credentials")
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials.deploy")
Run Code Online (Sandbox Code Playgroud)