具有多个领域的 SBT 凭据文件
SBT credentials file with multiple realm
我们 运行 一个神器服务器,它已经移动到不同的端点 (artifactory-b.example.com
)。为了使其向后兼容,旧的 url (artifactory-a.example.com
) 被代理到新的
但是,使用 sbt 发布使用具有以下布局的 .ivy2/.credentials
文件
realm=Artfactory realm
host=artifactory-a.example.com
user=artifactory-user
password=P4ssw0rdH4sh
但是,我想更改此设置,以便新版本将发布到正确的端点
realm=Artfactory realm
host=artifactory-d.example.com
user=artifactory-user
password=P4ssw0rdH4sh
是否可以在一个文件中添加多个领域?那个 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
任何人对此有任何经验,或者我必须使用两个文件,并将我的 repo 中的引用更改为第二个文件(即 .ivy2/.credentials2
)。
P.S。领域在一个文件中,因为多个存储库使用这些凭据进行发布。
这里非常重要的是领域具有相同的名称,只是端点不同(不像 this post):
事实证明,使用属性文件无法实现我想要的,因为那不是 属性 文件的工作方式。
也许还有其他的方法,但是我想要的解决方案无法通过这种方式实现,不幸的是
可能无法在一个凭证文件中拥有多个领域,但您可以在多个凭证文件中拥有多个领域,每个领域在一个单独的凭证文件中。
在 ~/.ivy/.credentials
中将是:
realm=Sonatype Nexus Repository Manager
host=mvn.nexus1.org
user=readonly
password=readonlyPass
在 ~/.ivy/.credentials.deploy
中将是:
realm=Sonatype Nexus Repository Manager
host=deploy.nexus2.org
user=deployment
password=deploymentPass
那么你的 build.sbt
:
中会有这些行
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials")
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials.deploy")
我们 运行 一个神器服务器,它已经移动到不同的端点 (artifactory-b.example.com
)。为了使其向后兼容,旧的 url (artifactory-a.example.com
) 被代理到新的
但是,使用 sbt 发布使用具有以下布局的 .ivy2/.credentials
文件
realm=Artfactory realm
host=artifactory-a.example.com
user=artifactory-user
password=P4ssw0rdH4sh
但是,我想更改此设置,以便新版本将发布到正确的端点
realm=Artfactory realm
host=artifactory-d.example.com
user=artifactory-user
password=P4ssw0rdH4sh
是否可以在一个文件中添加多个领域?那个 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
任何人对此有任何经验,或者我必须使用两个文件,并将我的 repo 中的引用更改为第二个文件(即 .ivy2/.credentials2
)。
P.S。领域在一个文件中,因为多个存储库使用这些凭据进行发布。 这里非常重要的是领域具有相同的名称,只是端点不同(不像 this post):
事实证明,使用属性文件无法实现我想要的,因为那不是 属性 文件的工作方式。
也许还有其他的方法,但是我想要的解决方案无法通过这种方式实现,不幸的是
可能无法在一个凭证文件中拥有多个领域,但您可以在多个凭证文件中拥有多个领域,每个领域在一个单独的凭证文件中。
在 ~/.ivy/.credentials
中将是:
realm=Sonatype Nexus Repository Manager
host=mvn.nexus1.org
user=readonly
password=readonlyPass
在 ~/.ivy/.credentials.deploy
中将是:
realm=Sonatype Nexus Repository Manager
host=deploy.nexus2.org
user=deployment
password=deploymentPass
那么你的 build.sbt
:
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials")
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials.deploy")