我需要从安全的内部Nexus OSS存储库中检索依赖项。
我现在不需要进行任何部署,只需要获取依赖项,但我没有运气。
这是我的 build.sbt 文件:
credentials += Credentials("Sonatype Nexus Repository Manager", "repo.server.com", "admin", "admin123")
libraryDependencies += "group" % "artifact" % "1.0.0"
域是Nexus返回的域名。
这是我的〜/ .sbt / repositories 文件:
[repositories]
local
releases: https://repo.server.com:8110/nexus/content/repositories/releases/
ivy-releases: https://repo.server.com:8110/nexus/content/groups/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
custom-public: https://repo.server.com:8110/nexus/content/groups/custom-public
我有三个回购:
releases
回购。 Typesafe ivy releases
和SBT plugin releases
的群组。它也是公开的,并且根据this guide中的建议与custom-public
分开。这是我的 SBT_OPTS 环境变量:
set SBT_OPTS=-Dsbt.override.build.repos=true -Xmx1024M -Xss20m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m -Dsbt.log.format=true -Djavax.net.ssl.trustStore=~/trust.jks -Djavax.net.ssl.trustStorePassword=passs
SBT发现公共回购没有问题。但我无法从受限制的回购下载任何依赖。它给出了以下错误:
[warn] module not found: group#artifact;1.0.0
[warn] ==== local: tried
[warn] C:\Documents and Settings\gferrari\.ivy2\local\group\artifact\1.0.0\ivys\ivy.xml
[warn] ==== releases: tried
[warn] https://repo.server.com:8110/nexus/content/repositories/releases/group/artifact/1.0.0/artifact-1.0.0.pom
[warn] ==== ivy-releases: tried
[warn] https://repo.server.com:8110/nexus/content/groups/ivy-releases/group/artifact/1.0.0/ivys/ivy.xml
[warn] ==== custom-public: tried
[warn] https://repo.server.com:8110/nexus/content/groups/custom-public/group/artifact/1.0.0/artifact-1.0.0.pom
如果我在浏览器中尝试发布网址https://repo.server.com:8110/nexus/content/repositories/releases/group/artifact/1.0.0/artifact-1.0.0.pom
,并且 admin 用户已登录,则会正确显示pom文件。
我有什么选择来解决这个问题?
答案 0 :(得分:0)
原来,生产网络服务器(Oracle iPlanet)中的jsessionid
请求参数存在问题。
以下是我为解决问题所采取的措施:
compile
)并比较Nexus日志(级别DEBUG
)。web.xml
中添加了一个过滤器,使用Tuckey重写过滤器删除任何jsessionid
参数。更改后,服务器停止创建虚假会话,并开始在http标头中正确找到用户凭据。
应该有一些iPlanet配置参数来更改jsessionid
参数的行为。以上步骤只是我目前的解决方案。