如何使用sbt访问安全的Nexus?

我正在尝试访问需要一些基本身份验证的Nexus存储库管理器。一切工作正常从Maven2但是当我尝试配置在SBT的东西,它不能找到工件。它使用自定义库模式(见this related question),但我不认为这应该重要。在任何情况下,相关配置在这里。

Project.scala:

val snapshotsName = "Repository Snapshots"
val snapshotsUrl = new java.net.URL("http://nexusHostIp:8081/nexus/content/repositories/snapshots")
val snapshotsPattern = "[organisation]/[module]/[revision]-SNAPSHOT/[artifact]-[revision](-[timestamp]).[ext]"
val snapshots = Resolver.url(snapshotsName, snapshotsUrl)(Patterns(snapshotsPattern))
Credentials(Path.userHome / ".ivy2" / ".credentials", log)

val dep = "group" % "artifact" % "0.0.1" extra("timestamp" -> "20101202.195418-3")

〜/ .ivy2 / .credentials:

realm=Snapshots Nexus
host=nexusHostIp:8081
user=nexususername
password=nexuspassword

根据a similar discussion in the SBT user group这应该工作正常,但我得到以下当我尝试构建。

==== Repository Snapshots: tried
[warn]    -- artifact group#artifact;0.0.1!artifact.jar:
[warn]    http://nexusHostIp:8081/nexus/content/repositories/snapshots/group/artifact/0.0.1-SNAPSHOT/artifact-0.0.1-20101202.195418-3.jar

我相当肯定这是一个凭证问题,而不是别的,因为我可以打它的网址说它是直接尝试下载jar(验证后)。

我也试过声明内联的凭据(即使它不太理想)如此:

Credentials.add("Repository Snapshots", "nexusHostIp", "nexususername", "nexuspassword")
这是我做的(sbt 0.13 artifactory – 设置应该类似于nexus):

1)编辑文件〜/ .sbt / repositories,如下所示:http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Proxy-Repositories.html

[repositories]
  local
  my-ivy-proxy-releases: http://repo.company.com/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  my-maven-proxy-releases: http://repo.company.com/maven-releases/

2)锁定我的工件以禁用匿名访问。

3)在〜/ .sbt / .credentials中创建凭据文件

realm=Artifactory Realm
host=artifactory.mycompany.com
user=username
password=password

4)在〜/ .sbt / 0.13 / plugins / credentials.sbt下创建一个文件,连接默认凭据

credentials += Credentials(Path.userHome / ".sbt" / ".credentials")

现在,当我的项目加载sbt命中artifactory像正常。

我这样做的原因是保持存储库定义等,从项目文件,以使团队具有灵活性(他们可以设置内部服务器,以提供进行中的工件等)。

– 奥斯汀

翻译自:https://stackoverflow.com/questions/4348805/how-to-access-a-secured-nexus-with-sbt

转载注明原文:如何使用sbt访问安全的Nexus?