错误信息:
java.io.IOException: Access to URL
http://maven.company.com/repository/internal/com/company/
project_2.10/0.0.3/project_2.10-0.0.3.pom was
refused by the server: Unauthorized
运行Apache Archiva 1.4-M4(最新),我可以通过Web界面上传,但不能通过SBT上传。
在SBT中使用以下设置:
publishTo := Some("company releases" at "http://maven.company.com/repository/internal"),
credentials += Credentials(
"company Maven Repository",
"maven.company.com",
"username",
"password"
),
publishMavenStyle := true,
publishArtifact in Test := false,
pomIncludeRepository := { _ => true },
// .. some xml with author details
}
所有详细信息,包括用户名,密码和url都是正确的。
最佳答案
安全领域对常春藤很重要。这就像唯一的依赖项管理器,要求您使用有效的安全领域。我相信对于Apache Archiva,它是“ Repository Archiva Managed”。您可以通过尝试向Archiva发出自己的HTTP请求来检查,看看它告诉您所支持的领域。
以下是尝试检测安全领域的代码:https://github.com/sbt/sbt-pom-reader/blob/2b515b58739ef7bdfad8f98248e901db8e140892/src/main/scala/com/typesafe/sbt/pom/MavenHelper.scala#L212-L221
更新:
该领域看起来像:“存储库Archiva管理的内部存储库”。如果发布到其他存储库,请用存储库名称替换“内部”。
确定安全领域后,您要按以下方式更新构建:
credentials += Credentials(
"Repository Archiva Managed internal Repository", // Or whatever you detect as the security realm
"maven.company.com",
"username",
"password"
),