Sbt 添加凭据以允许Travis CI使用专用Nexus存储库

Sbt 添加凭据以允许Travis CI使用专用Nexus存储库,sbt,nexus,travis-ci,Sbt,Nexus,Travis Ci,我使用Travis进行持续集成。但是,我的项目依赖于私有的Nexus存储库。我不希望将sbt凭据签入我们的存储库。Travis确实支持,但它们只影响环境变量 我如何让Travis对Nexus进行身份验证sbt似乎不支持来自环境变量的凭据 似乎支持从环境变量指定凭据文件,或将凭据指定为系统属性。不幸的是,这似乎不适用于0.13 sbt -Dsbt.boot.realm="Sonatype Nexus Repository Manager" -Dsbt.boot.host="www.there.c

我使用Travis进行持续集成。但是,我的项目依赖于私有的Nexus存储库。我不希望将sbt凭据签入我们的存储库。Travis确实支持,但它们只影响环境变量

我如何让Travis对Nexus进行身份验证
sbt
似乎不支持来自环境变量的凭据

似乎支持从环境变量指定凭据文件,或将凭据指定为系统属性。不幸的是,这似乎不适用于
0.13

sbt -Dsbt.boot.realm="Sonatype Nexus Repository Manager" -Dsbt.boot.host="www.there.com" -Dsbt.boot.user="deployment" -Dsbt.boot.password="password" aether-deploy

您可以在.travis.yml中设置全局变量,如下所述:

可以使用travis gem为travis加密这些全局变量。解释如下:

您希望使用Travis安全环境变量,如文档所示。假设您的环境变量是
NEXUS\u USER
NEXUS\u PASS
,则命令行需要是:

sbt 'set credentials += Credentials("Sonatype Nexus Repository Manager", "www.there.com", System.getenv("NEXUS_USER"), System.getenv("NEXUS_PASS"))' aether-deploy
如果您想使该行成为构建的标准实践,那么您也可以在
build.sbt
中安全地使用该行


用于将Travis构建部署到Sonatype OSS存储库。您可以查看我们的
.travis.yml
,查看它是如何设置的。

您确定travis CI正在使用sbt 0.13启动器吗?记住,启动器版本不一定对应于实际启动的sbt版本。从理论上讲,旧的启动器可以启动新的sbt版本,反之亦然(尽管这并不总是有效)。您可以在启动时运行
--version
来检测启动器版本。@robin green,不,我不确定。但是,我确信我的机器上使用的是0.13,它在那里也不起作用。我们试过了,它还可以。我们最后签入了原始凭证,对此感到很不好。